diff options
| author | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2018-02-23 09:52:08 +0100 |
|---|---|---|
| committer | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2018-02-23 09:52:34 +0100 |
| commit | 5ee43097fde03ac2fabb655f14aa15c8fe8ed631 (patch) | |
| tree | 3140bfb9fd62fdb7ccf0f00ddd23ab80e8fc24ae /spec/lib | |
| parent | 6fe4d2c6f0439153017a7ede20ce52a5643eeec2 (diff) | |
| download | gitlab-ce-5ee43097fde03ac2fabb655f14aa15c8fe8ed631.tar.gz | |
Simplify pipelines expression parser
Diffstat (limited to 'spec/lib')
| -rw-r--r-- | spec/lib/gitlab/ci/pipeline/expression/lexer_spec.rb | 1 | ||||
| -rw-r--r-- | spec/lib/gitlab/ci/pipeline/expression/parser_spec.rb | 15 |
2 files changed, 9 insertions, 7 deletions
diff --git a/spec/lib/gitlab/ci/pipeline/expression/lexer_spec.rb b/spec/lib/gitlab/ci/pipeline/expression/lexer_spec.rb index 464b74c54d8..0d70ca6c906 100644 --- a/spec/lib/gitlab/ci/pipeline/expression/lexer_spec.rb +++ b/spec/lib/gitlab/ci/pipeline/expression/lexer_spec.rb @@ -67,5 +67,4 @@ describe Gitlab::Ci::Pipeline::Expression::Lexer do expect(lexer.lexemes).to eq %w[variable string] end end - end diff --git a/spec/lib/gitlab/ci/pipeline/expression/parser_spec.rb b/spec/lib/gitlab/ci/pipeline/expression/parser_spec.rb index c70bcc8438c..63c3393f07a 100644 --- a/spec/lib/gitlab/ci/pipeline/expression/parser_spec.rb +++ b/spec/lib/gitlab/ci/pipeline/expression/parser_spec.rb @@ -2,22 +2,25 @@ require 'spec_helper' describe Gitlab::Ci::Pipeline::Expression::Parser do describe '#tree' do - context 'when using an operator' do + context 'when using operators' do it 'returns a reverse descent parse tree' do - expect(described_class.new(tokens('$VAR == "123"')).tree) + expect(described_class.seed('$VAR1 == "123" == $VAR2').tree) .to be_a Gitlab::Ci::Pipeline::Expression::Equals end end context 'when using a single token' do it 'returns a single token instance' do - expect(described_class.new(tokens('$VAR')).tree) + expect(described_class.seed('$VAR').tree) .to be_a Gitlab::Ci::Pipeline::Expression::Variable end end - end - def tokens(statement) - Gitlab::Ci::Pipeline::Expression::Lexer.new(statement).tokens.to_enum + context 'when expression is empty' do + it 'returns a null token' do + expect(described_class.seed('').tree) + .to be_a Gitlab::Ci::Pipeline::Expression::Null + end + end end end |
