Skip to content

Commit 8019694

Browse files
authored
Render the empty tag expression as an empty string (#222)
While the empty tag expression, results in a True expression. This True expression should be rendered as the empty string to make it possible to parse the string representation of a parsed expression.
1 parent eb1e717 commit 8019694

File tree

10 files changed

+17
-8
lines changed

10 files changed

+17
-8
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
77

88
## [Unreleased]
99
### Fixed
10+
- Render the empty tag expression as an empty string ([#222](https://github.com/cucumber/tag-expressions/pull/222))
1011
- Improve error message for missing operands ([#221](https://github.com/cucumber/tag-expressions/pull/221))
1112

1213
## [8.0.0] - 2025-10-14

go/parser.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,5 +284,5 @@ func (t *trueExpr) Evaluate(variables []string) bool {
284284
}
285285

286286
func (t *trueExpr) ToString() string {
287-
return "true"
287+
return ""
288288
}

java/src/main/java/io/cucumber/tagexpressions/TagExpressionParser.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,7 @@ public boolean evaluate(List<String> variables) {
270270

271271
@Override
272272
public String toString() {
273-
return "true";
273+
return "";
274274
}
275275
}
276276
}

javascript/src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,6 @@ class True implements Node {
238238
}
239239

240240
public toString() {
241-
return 'true'
241+
return ''
242242
}
243243
}

perl/lib/Cucumber/TagExpressions/Node.pm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@ An instance of one of the other node class types.
249249
sub stringify {
250250
my ( $self ) = @_;
251251

252-
return 'true' if not defined $self->sub_expression;
252+
return '' if not defined $self->sub_expression;
253253
return $self->sub_expression->stringify;
254254
}
255255
}

php/src/Expression/TrueExpression.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,6 @@ public function evaluate(array $variables): bool
1616

1717
public function __toString(): string
1818
{
19-
return 'true';
19+
return '';
2020
}
2121
}

python/src/cucumber_tag_expressions/model.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ def evaluate(self, values):
222222
return True
223223

224224
def __str__(self):
225-
return "true"
225+
return ""
226226

227227
def __repr__(self):
228228
return "True_()"

ruby/lib/cucumber/tag_expressions/expressions.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ def evaluate(_variables)
7979
end
8080

8181
def to_s
82-
'true'
82+
''
8383
end
8484
end
8585
end

testdata/evaluations.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
- expression: ''
2+
tests:
3+
- variables: []
4+
result: true
5+
- variables: ['x']
6+
result: true
7+
- variables: ['y']
8+
result: true
19
- expression: 'not x'
210
tests:
311
- variables: ['x']

testdata/parsing.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
- expression: ''
2-
formatted: 'true'
2+
formatted: ''
33
- expression: 'a and b'
44
formatted: '( a and b )'
55
- expression: 'a or b'

0 commit comments

Comments
 (0)