TODO: Make these tests pass

This commit is contained in:
Netscape Navigator 2019-12-10 21:52:43 -06:00
parent 6d244d331b
commit dab113961a
3 changed files with 18 additions and 12 deletions

3
dist/pigeon.rb vendored
View File

@ -18,6 +18,9 @@ module Pigeon
BODY_TPL = File.read(File.join(TPL_DIR, "2_body.erb")).sub("\n", "")
FOOTER_TPL = File.read(File.join(TPL_DIR, "3_footer.erb")).sub("\n", "")
COMPLETE_TPL = [HEADER_TPL, BODY_TPL, FOOTER_TPL].join("")
CURRENT_DRAFT = "HEAD.draft"
EMPTY_MESSAGE = "NONE"
OUTBOX_PATH = File.join(".pigeon", "user")
# /MESSAGE TEMPLATE CONSTANTS
# Internal namespaces for PStore keys:

View File

@ -2,10 +2,6 @@ require "digest"
module Pigeon
class Message
NAME_OF_DRAFT = "HEAD.draft"
OUTBOX_PATH = File.join(".pigeon", "user")
EMPTY_MESSAGE = "NONE"
attr_reader :author, :kind, :prev, :body, :depth, :signature
def self.create(kind:, prev: nil, body: {})
@ -39,7 +35,8 @@ module Pigeon
end
def self.current
@current ||= (Pigeon::Storage.current.get_config(NAME_OF_DRAFT) || new)
@current ||=
(Pigeon::Storage.current.get_config(CURRENT_DRAFT) || new.save)
end
def self.reset_current
@ -47,7 +44,7 @@ module Pigeon
end
def save
Pigeon::Storage.current.set_config(NAME_OF_DRAFT, self)
Pigeon::Storage.current.set_config(CURRENT_DRAFT, self)
self
end

View File

@ -11,8 +11,16 @@ RSpec.describe Pigeon::Message do
end
it "signs a message" do
test_me = message
raise "need better assertions!"
m1 = message
message2 = Pigeon::Message.create(kind: "unit_test")
message2.append("expected_sequence", "1")
message2.sign
expect(message2.author).to eq(Pigeon::KeyPair.current.public_key)
expect(message2.kind).to eq("unit_test")
expect(message2.prev).to eq(m1)
expect(message2.body).to eq("expected_sequence" => "1")
expect(message2.depth).to eq(1)
end
MSG = [
@ -30,8 +38,6 @@ RSpec.describe Pigeon::Message do
actual = message.render
expected = MSG.gsub("___", pk)
expect(actual).to start_with(expected)
puts "TODO: Write a test for deterministic verification of signatures"
puts "current tests only test top parts of message, not signature."
end
it "creates a new message" do
@ -45,7 +51,7 @@ RSpec.describe Pigeon::Message do
"b" => hash,
},
depth: 0,
prev: Pigeon::Message::EMPTY_MESSAGE,
prev: Pigeon::EMPTY_MESSAGE,
}
message.append("a", "bar")
message.append("b", hash)
@ -53,7 +59,7 @@ RSpec.describe Pigeon::Message do
expect(message.kind).to eq("unit_test")
expect(message.body).to eq(expectations.fetch(:body))
expect(message.depth).to eq(0)
expect(message.prev).to eq(Pigeon::Message::EMPTY_MESSAGE)
expect(message.prev).to eq(Pigeon::EMPTY_MESSAGE)
expectations.map do |k, v|
expect(Pigeon::Message.current.send(k)).to eq(v)
end