diff options
author | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2018-02-21 14:55:35 +0100 |
---|---|---|
committer | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2018-02-21 14:55:35 +0100 |
commit | 35354826b11c69b1fc69100838727d473dfd9e9d (patch) | |
tree | 1d07bd85e205be99483a66e81566b14f81532747 | |
parent | e6498efe0af5537ec4bd3cb3251030e8917d06e6 (diff) | |
download | gitlab-ce-35354826b11c69b1fc69100838727d473dfd9e9d.tar.gz |
Improve pipeline expressions specs and freeze constants
-rw-r--r-- | lib/gitlab/ci/pipeline/expression/lexer.rb | 2 | ||||
-rw-r--r-- | lib/gitlab/ci/pipeline/expression/statement.rb | 2 | ||||
-rw-r--r-- | spec/lib/gitlab/ci/pipeline/expression/statement_spec.rb | 19 |
3 files changed, 17 insertions, 6 deletions
diff --git a/lib/gitlab/ci/pipeline/expression/lexer.rb b/lib/gitlab/ci/pipeline/expression/lexer.rb index ee202ebce69..3985e30a768 100644 --- a/lib/gitlab/ci/pipeline/expression/lexer.rb +++ b/lib/gitlab/ci/pipeline/expression/lexer.rb @@ -7,7 +7,7 @@ module Gitlab Expression::Variable, Expression::String, Expression::Equals - ] + ].freeze MAX_CYCLES = 5 SyntaxError = Class.new(StandardError) diff --git a/lib/gitlab/ci/pipeline/expression/statement.rb b/lib/gitlab/ci/pipeline/expression/statement.rb index 35c3bb20608..339bef66c45 100644 --- a/lib/gitlab/ci/pipeline/expression/statement.rb +++ b/lib/gitlab/ci/pipeline/expression/statement.rb @@ -12,7 +12,7 @@ module Gitlab %w[string equals variable], %w[null equals variable], %w[variable] - ] + ].freeze def initialize(statement, pipeline) @pipeline = pipeline diff --git a/spec/lib/gitlab/ci/pipeline/expression/statement_spec.rb b/spec/lib/gitlab/ci/pipeline/expression/statement_spec.rb index 7f5f55660be..3d714a64a12 100644 --- a/spec/lib/gitlab/ci/pipeline/expression/statement_spec.rb +++ b/spec/lib/gitlab/ci/pipeline/expression/statement_spec.rb @@ -29,11 +29,22 @@ describe Gitlab::Ci::Pipeline::Expression::Statement do end context 'when expression grammar is correct' do - let(:text) { '$VAR == "value"' } + context 'when using an operator' do + let(:text) { '$VAR == "value"' } - it 'returns a reverse descent parse tree when using operator' do - expect(subject.parse_tree) - .to be_a Gitlab::Ci::Pipeline::Expression::Equals + it 'returns a reverse descent parse tree' do + expect(subject.parse_tree) + .to be_a Gitlab::Ci::Pipeline::Expression::Equals + end + end + + context 'when using a single token' do + let(:text) { '$VARIABLE' } + + it 'returns a single token instance' do + expect(subject.parse_tree) + .to be_a Gitlab::Ci::Pipeline::Expression::Variable + end end end end |