summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzesiek.bizon@gmail.com>2018-02-21 14:55:35 +0100
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2018-02-21 14:55:35 +0100
commit35354826b11c69b1fc69100838727d473dfd9e9d (patch)
tree1d07bd85e205be99483a66e81566b14f81532747
parente6498efe0af5537ec4bd3cb3251030e8917d06e6 (diff)
downloadgitlab-ce-35354826b11c69b1fc69100838727d473dfd9e9d.tar.gz
Improve pipeline expressions specs and freeze constants
-rw-r--r--lib/gitlab/ci/pipeline/expression/lexer.rb2
-rw-r--r--lib/gitlab/ci/pipeline/expression/statement.rb2
-rw-r--r--spec/lib/gitlab/ci/pipeline/expression/statement_spec.rb19
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