Skip to content
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ This document is formatted according to the principles of [Keep A CHANGELOG](htt
Please visit [cucumber/CONTRIBUTING.md](https://github.com/cucumber/cucumber/blob/master/CONTRIBUTING.md) for more info on how to contribute to Cucumber.

## [Unreleased]
### Added
- Add timestamp to `Attachment` message

## [10.2.0] - 2025-12-10
### Changed
Expand Down
14 changes: 10 additions & 4 deletions compatibility/cck_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
require_relative 'support/shared_examples'
require_relative 'support/cck/examples'

require 'cck/examples'
require 'cucumber/compatibility_kit'

# This is the implementation of the CCK testing for cucumber-ruby
# It will run each example from the CCK that is of type "gherkin" (As "markdown" examples aren't implemented in ruby)
Expand All @@ -13,13 +13,19 @@
describe CCK, :cck do
let(:cucumber_command) { 'bundle exec cucumber --publish-quiet --profile none --format message' }

CCK::Examples.gherkin.each do |example_name|
['retry', 'ambiguous'].each do |example_name|
describe "'#{example_name}' example" do
include_examples 'cucumber compatibility kit' do
let(:example) { example_name }
let(:extra_args) { example == 'retry' ? '--retry 2' : '' }
let(:extra_args) do
if File.exist?("#{cck_path}/#{example}.arguments.txt")
File.read("#{cck_path}/#{example}.arguments.txt").to_s
else
''
end
end
let(:support_code_path) { CCK::Examples.supporting_code_for(example) }
let(:messages) { `#{cucumber_command} #{extra_args} --require #{support_code_path} #{cck_path}` }
let(:messages) { `#{cucumber_command} --require #{support_code_path} #{cck_path} #{extra_args}` }
end
end
end
Expand Down
9 changes: 9 additions & 0 deletions compatibility/features/ambiguous/ambiguous_steps.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# frozen_string_literal: true

Given(/^a (.*?) with (.*?)$/) do |_arg1, _arg2|
# no-op
end

Given(/^a step with (.*)$/) do |_arg1|
# no-op
end
5 changes: 5 additions & 0 deletions compatibility/features/doc-strings/doc-strings_steps.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# frozen_string_literal: true

Given('a doc string:') do |doc_string|
# no-op
end
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# frozen_string_literal: true

BeforeAll do
# no-op
end

BeforeAll do
raise 'BeforeAll hook went wrong'
end

BeforeAll do
# no-op
end

When('a step passes') do
# no-op
end

AfterAll do
# no-op
end

AfterAll do
# no-op
end
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# frozen_string_literal: true

BeforeAll do
attach('Attachment from BeforeAll hook', 'text/plain')
end

When('a step passes') do
# no-op
end

AfterAll do
attach('Attachment from AfterAll hook', 'text/plain')
end
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# frozen_string_literal: true

BeforeAll do
# no-op
end

BeforeAll do
# no-op
end

When('a step passes') do
# no-op
end

AfterAll do
# no-op
end

AfterAll do
raise 'AfterAll hook went wrong'
end

AfterAll do
# no-op
end
25 changes: 25 additions & 0 deletions compatibility/features/global-hooks/global-hooks_steps.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# frozen_string_literal: true

BeforeAll do
# no-op
end

BeforeAll do
# no-op
end

When('a step passes') do
# no-op
end

When('a step fails') do
raise 'Exception in step'
end

AfterAll do
# no-op
end

AfterAll do
# no-op
end
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# frozen_string_literal: true

Given('an order for {string}') do |_item|
# no-op
end
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# frozen_string_literal: true

Given('an order for {string}') do |_item|
# no-op
end
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# frozen_string_literal: true

Given(/^a (.*?)(?: and a (.*?))?(?: and a (.*?))?$/) do |_vegetable1, _vegetable2, _vegetable3|
# no-op
end
12 changes: 12 additions & 0 deletions compatibility/features/retry/retry_steps.rb
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,15 @@
Given('a step that always fails') do
raise 'Exception in step'
end

Given('an ambiguous step') do
# first one
end

Given('an ambiguous step') do
# second one
end

Given('a pending step') do
pending('')
end
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# frozen_string_literal: true

Given('an order for {string}') do |_item|
# no-op
end

When('an action') do
# no-op
end

Then('an outcome') do
# no-op
end
9 changes: 9 additions & 0 deletions compatibility/features/unused-steps/unused-steps_steps.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# frozen_string_literal: true

Given('a step that is used') do
# no-op
end

Given('a step that is not used') do
# no-op
end
2 changes: 1 addition & 1 deletion compatibility/support/shared_examples.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
RSpec.shared_examples 'cucumber compatibility kit' do
include CCK::Helpers

let(:cck_path) { CCK::Examples.feature_code_for(example) }
let(:cck_path) { CompatibilityKit.feature_code_for(example) }

let(:parsed_original) { parse_ndjson_file("#{cck_path}/#{example}.ndjson") }
let(:parsed_generated) { parse_ndjson(messages) }
Expand Down
2 changes: 1 addition & 1 deletion cucumber.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ Gem::Specification.new do |s|
s.add_dependency 'multi_test', '~> 1.1'
s.add_dependency 'sys-uname', '~> 1.3'

s.add_development_dependency 'cucumber-compatibility-kit', '~> 20.0'
s.add_development_dependency 'cucumber-compatibility-kit', '~> 22.0'
# Only needed whilst we are testing the formatters. Can be removed once we remove tests for those
s.add_development_dependency 'nokogiri', '~> 1.15'
s.add_development_dependency 'rake', '~> 13.2'
Expand Down
Loading