2020-03-24 12:39:32 +00:00
|
|
|
require "spec_helper"
|
|
|
|
|
|
|
|
RSpec.describe Pigeon::Lexer do
|
|
|
|
before(:each) do
|
|
|
|
Pigeon::Storage.reset
|
|
|
|
Pigeon::LocalIdentity.reset
|
|
|
|
end
|
|
|
|
|
2020-04-01 13:41:41 +00:00
|
|
|
let(:example_bundle) { File.read("./spec/fixtures/normal.bundle") }
|
2020-03-31 12:30:44 +00:00
|
|
|
let(:tokens) { Pigeon::Lexer.tokenize(example_bundle) }
|
2020-03-24 12:39:32 +00:00
|
|
|
|
|
|
|
it "parses tokens" do
|
|
|
|
results = Pigeon::Parser.parse(tokens)
|
2020-03-24 13:00:00 +00:00
|
|
|
expect(results.length).to eq(2)
|
|
|
|
expect(results.first).to be_kind_of(Pigeon::Message)
|
|
|
|
expect(results.last).to be_kind_of(Pigeon::Message)
|
2020-03-24 12:39:32 +00:00
|
|
|
end
|
|
|
|
|
2020-03-31 12:30:44 +00:00
|
|
|
it "ingests and reconstructs a bundle" do
|
2020-04-01 13:41:41 +00:00
|
|
|
pending("Pigeon::Bundle.ingest is broke. Will fix after investigation.")
|
|
|
|
messages = Pigeon::Bundle.ingest("./spec/fixtures/normal.bundle")
|
2020-03-31 12:30:44 +00:00
|
|
|
expect(messages.length).to eq(2)
|
|
|
|
expect(messages.map(&:class).uniq).to eq([Pigeon::Message])
|
|
|
|
re_bundled = messages.map(&:render).join("\n\n") + "\n"
|
|
|
|
expect(re_bundled).to eq(example_bundle)
|
|
|
|
end
|
2020-03-24 12:39:32 +00:00
|
|
|
end
|