Finish tests for Message#append

This commit is contained in:
Netscape Navigator 2019-12-04 21:56:47 -06:00
parent 7223906613
commit 7d8051b7b5
3 changed files with 17 additions and 14 deletions

BIN
db.pigeon

Binary file not shown.

View File

@ -24,15 +24,6 @@ module Pigeon
@prev = previous_message ? previous_message.signature : EMPTY_MESSAGE
end
def self.current
# TODO: Handle find-or-create logic.
@current ||= Pigeon::Storage.current.get_config(NAME_OF_DRAFT)
end
def render
Template.new(self).render
end
def append(key, value)
puts "TODO: Add #[] / #[]= methods"
puts "TODO: Add #readonly? method and disallow edits after save"
@ -47,6 +38,15 @@ module Pigeon
return self.body[key]
end
def self.current
@current ||= (Pigeon::Storage.current.get_config(NAME_OF_DRAFT) || new)
end
def save
Pigeon::Storage.current.set_config(NAME_OF_DRAFT, self)
self
end
def sign
@signature = calculate_signature
file_path = path_to_message_number(@depth)
@ -56,9 +56,8 @@ module Pigeon
self
end
def save
Pigeon::Storage.current.set_config(NAME_OF_DRAFT, self)
self
def render
Template.new(self).render
end
private

View File

@ -2,16 +2,20 @@ require "spec_helper"
RSpec.describe Pigeon::Message do
it "creates a new message" do
Pigeon::KeyPair.current
message = Pigeon::Message.create(kind: "unit_test")
hash = Pigeon::Storage.current.set_blob(File.read("./logo.png"))
expectations = {
author: Pigeon::KeyPair.current.public_key,
kind: "unit_test",
body: { "foo" => "bar".to_json },
body: {
"foo" => "bar".to_json,
"baz" => hash,
},
depth: 0,
prev: Pigeon::Message::EMPTY_MESSAGE,
}
message.append("foo", "bar")
message.append("baz", hash)
expect(message.author).to eq(Pigeon::KeyPair.current.public_key)
expect(message.kind).to eq("unit_test")
expect(message.body).to eq(expectations.fetch(:body))