You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

file_specs_spec.rb 2.2 kB

2 years ago
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. # frozen_string_literal: true
  2. require 'cucumber/file_specs'
  3. module Cucumber
  4. describe FileSpecs do
  5. let(:file_specs) { FileSpecs.new(['features/foo.feature:1:2:3', 'features/bar.feature:4:5:6']) }
  6. let(:locations) { file_specs.locations }
  7. let(:files) { file_specs.files }
  8. it 'parses locations from multiple files' do
  9. expect(locations.length).to eq 6
  10. expect(locations).to eq [
  11. Cucumber::Core::Test::Location.new('features/foo.feature', 1),
  12. Cucumber::Core::Test::Location.new('features/foo.feature', 2),
  13. Cucumber::Core::Test::Location.new('features/foo.feature', 3),
  14. Cucumber::Core::Test::Location.new('features/bar.feature', 4),
  15. Cucumber::Core::Test::Location.new('features/bar.feature', 5),
  16. Cucumber::Core::Test::Location.new('features/bar.feature', 6)
  17. ]
  18. end
  19. it 'parses file names from multiple file specs' do
  20. expect(files.length).to eq 2
  21. expect(files).to eq [
  22. 'features/foo.feature',
  23. 'features/bar.feature'
  24. ]
  25. end
  26. context 'when files are not unique' do
  27. let(:file_specs) { FileSpecs.new(['features/foo.feature:4', 'features/foo.feature:34']) }
  28. it 'parses unique file names' do
  29. expect(files.length).to eq 1
  30. expect(files).to eq ['features/foo.feature']
  31. end
  32. end
  33. context 'when no line number is specified' do
  34. let(:file_specs) { FileSpecs.new(['features/foo.feature', 'features/bar.feature:34']) }
  35. it 'returns a wildcard location for that file' do
  36. expect(locations).to eq [
  37. Cucumber::Core::Test::Location.new('features/foo.feature'),
  38. Cucumber::Core::Test::Location.new('features/bar.feature', 34)
  39. ]
  40. end
  41. end
  42. context 'when the same file is referenced more than once' do
  43. let(:file_specs) { FileSpecs.new(['features/foo.feature:10', 'features/foo.feature:1']) }
  44. it 'returns locations in the order specified' do
  45. expect(locations).to eq [
  46. Cucumber::Core::Test::Location.new('features/foo.feature', 10),
  47. Cucumber::Core::Test::Location.new('features/foo.feature', 1)
  48. ]
  49. end
  50. end
  51. end
  52. end

No Description

Contributors (1)