From b27caf296366fba92cd77f6b1d0505a523b9edca Mon Sep 17 00:00:00 2001 From: "M.P. Korstanje" Date: Thu, 6 Nov 2025 01:10:57 +0100 Subject: [PATCH 1/3] Use the empty string to represent the true expression --- .../io/cucumber/tagexpressions/TagExpressionParser.java | 2 +- testdata/evaluations.yml | 8 ++++++++ testdata/parsing.yml | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/java/src/main/java/io/cucumber/tagexpressions/TagExpressionParser.java b/java/src/main/java/io/cucumber/tagexpressions/TagExpressionParser.java index e71d74f3..540c10d1 100644 --- a/java/src/main/java/io/cucumber/tagexpressions/TagExpressionParser.java +++ b/java/src/main/java/io/cucumber/tagexpressions/TagExpressionParser.java @@ -267,7 +267,7 @@ public boolean evaluate(List variables) { @Override public String toString() { - return "true"; + return ""; } } } diff --git a/testdata/evaluations.yml b/testdata/evaluations.yml index a84fb3ca..9a7c7b96 100644 --- a/testdata/evaluations.yml +++ b/testdata/evaluations.yml @@ -1,3 +1,11 @@ +- expression: '' + tests: + - variables: [] + result: true + - variables: ['x'] + result: true + - variables: ['y'] + result: true - expression: 'not x' tests: - variables: ['x'] diff --git a/testdata/parsing.yml b/testdata/parsing.yml index c12f1c54..ad53c9f1 100644 --- a/testdata/parsing.yml +++ b/testdata/parsing.yml @@ -1,5 +1,5 @@ - expression: '' - formatted: 'true' + formatted: '' - expression: 'a and b' formatted: '( a and b )' - expression: 'a or b' From d5457a6bbea6892474483833d29809e051dd314a Mon Sep 17 00:00:00 2001 From: "M.P. Korstanje" Date: Thu, 6 Nov 2025 01:13:23 +0100 Subject: [PATCH 2/3] Fix all other implementations --- go/parser.go | 2 +- javascript/src/index.ts | 2 +- perl/lib/Cucumber/TagExpressions/Node.pm | 2 +- php/src/Expression/TrueExpression.php | 2 +- python/src/cucumber_tag_expressions/model.py | 2 +- ruby/lib/cucumber/tag_expressions/expressions.rb | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go/parser.go b/go/parser.go index 4ff46382..030b5fe4 100644 --- a/go/parser.go +++ b/go/parser.go @@ -249,5 +249,5 @@ func (t *trueExpr) Evaluate(variables []string) bool { } func (t *trueExpr) ToString() string { - return "true" + return "" } diff --git a/javascript/src/index.ts b/javascript/src/index.ts index 2d09f602..2d6e412e 100644 --- a/javascript/src/index.ts +++ b/javascript/src/index.ts @@ -236,6 +236,6 @@ class True implements Node { } public toString() { - return 'true' + return '' } } diff --git a/perl/lib/Cucumber/TagExpressions/Node.pm b/perl/lib/Cucumber/TagExpressions/Node.pm index 3880cc05..c15e1100 100644 --- a/perl/lib/Cucumber/TagExpressions/Node.pm +++ b/perl/lib/Cucumber/TagExpressions/Node.pm @@ -249,7 +249,7 @@ An instance of one of the other node class types. sub stringify { my ( $self ) = @_; - return 'true' if not defined $self->sub_expression; + return '' if not defined $self->sub_expression; return $self->sub_expression->stringify; } } diff --git a/php/src/Expression/TrueExpression.php b/php/src/Expression/TrueExpression.php index e49e92df..a8820d93 100644 --- a/php/src/Expression/TrueExpression.php +++ b/php/src/Expression/TrueExpression.php @@ -16,6 +16,6 @@ public function evaluate(array $variables): bool public function __toString(): string { - return 'true'; + return ''; } } diff --git a/python/src/cucumber_tag_expressions/model.py b/python/src/cucumber_tag_expressions/model.py index 509a2ef2..0dcac724 100644 --- a/python/src/cucumber_tag_expressions/model.py +++ b/python/src/cucumber_tag_expressions/model.py @@ -222,7 +222,7 @@ def evaluate(self, values): return True def __str__(self): - return "true" + return "" def __repr__(self): return "True_()" diff --git a/ruby/lib/cucumber/tag_expressions/expressions.rb b/ruby/lib/cucumber/tag_expressions/expressions.rb index 737bde37..53c3679c 100644 --- a/ruby/lib/cucumber/tag_expressions/expressions.rb +++ b/ruby/lib/cucumber/tag_expressions/expressions.rb @@ -79,7 +79,7 @@ def evaluate(_variables) end def to_s - 'true' + '' end end end From 272f69a4c9adbf97a433b2794a2ffc96033949a8 Mon Sep 17 00:00:00 2001 From: "M.P. Korstanje" Date: Fri, 7 Nov 2025 19:42:35 +0100 Subject: [PATCH 3/3] Update CHANGELOG --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e6c19047..e397b73b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/). ## [Unreleased] +### Fixed +- Render the empty tag expression as an empty string ([#222](https://github.com/cucumber/tag-expressions/pull/222)) ## [8.0.0] - 2025-10-14 ### Fixed