Skip to content

Commit

Permalink
Use same IdGenerator for Gherkin & TestCases
Browse files Browse the repository at this point in the history
  • Loading branch information
vincent-psarga committed Jan 13, 2020
1 parent 61d9c71 commit f31d432
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 9 deletions.
9 changes: 5 additions & 4 deletions lib/cucumber/core.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,16 @@ def execute(gherkin_documents, filters = [], event_bus = EventBus.new)
def compile(gherkin_documents, last_receiver, filters = [], event_bus = EventBus.new)
first_receiver = compose(filters, last_receiver)
gherkin_query = ::Gherkin::Query.new
compiler = Compiler.new(first_receiver, gherkin_query, Cucumber::Messages::IdGenerator::Incrementing.new)
parse gherkin_documents, compiler, event_bus, gherkin_query
id_generator = Cucumber::Messages::IdGenerator::Incrementing.new
compiler = Compiler.new(first_receiver, gherkin_query, id_generator)
parse gherkin_documents, compiler, event_bus, gherkin_query, id_generator
self
end

private

def parse(gherkin_documents, compiler, event_bus, gherkin_query)
parser = Core::Gherkin::Parser.new(compiler, event_bus, gherkin_query)
def parse(gherkin_documents, compiler, event_bus, gherkin_query, id_generator)
parser = Core::Gherkin::Parser.new(compiler, event_bus, gherkin_query, id_generator)
gherkin_documents.each do |document|
parser.document document
end
Expand Down
10 changes: 6 additions & 4 deletions lib/cucumber/core/gherkin/parser.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,14 @@ module Gherkin
ParseError = Class.new(StandardError)

class Parser
attr_reader :receiver, :event_bus, :gherkin_query
private :receiver, :event_bus, :gherkin_query
attr_reader :receiver, :event_bus, :gherkin_query, :id_generator
private :receiver, :event_bus, :gherkin_query, :id_generator

def initialize(receiver, event_bus, gherkin_query)
def initialize(receiver, event_bus, gherkin_query, id_generator)
@receiver = receiver
@event_bus = event_bus
@gherkin_query = gherkin_query
@id_generator = id_generator
end

def document(document)
Expand All @@ -38,7 +39,8 @@ def gherkin_options(document)
default_dialect: document.language,
include_source: false,
include_gherkin_document: true,
include_pickles: true
include_pickles: true,
id_generator: id_generator
}
end

Expand Down
4 changes: 3 additions & 1 deletion spec/cucumber/core/gherkin/parser_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,14 @@ module Gherkin
let(:receiver) { double }
let(:event_bus) { double }
let(:gherkin_query) { double }
let(:parser) { Parser.new(receiver, event_bus, gherkin_query) }
let(:id_generator) { double }
let(:parser) { Parser.new(receiver, event_bus, gherkin_query, id_generator) }
let(:visitor) { double }

before do
allow( event_bus ).to receive(:gherkin_source_parsed)
allow( gherkin_query ).to receive(:update)
allow( id_generator ).to receive(:new_id)
end

def parse
Expand Down

0 comments on commit f31d432

Please sign in to comment.