summaryrefslogtreecommitdiff
path: root/spec/lib
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzesiek.bizon@gmail.com>2018-02-21 12:37:55 +0100
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2018-02-21 12:37:55 +0100
commit9954928cceb2a5de7788ffdfdeb8a99e9ccf8b08 (patch)
tree8ba6c023defaad7984bcc0b6d1dfeecfe64f095e /spec/lib
parent523b84d4328c9e6ff6fc80c4319176bceb5865f9 (diff)
downloadgitlab-ce-9954928cceb2a5de7788ffdfdeb8a99e9ccf8b08.tar.gz
Implement pipeline expressions lexer
Diffstat (limited to 'spec/lib')
-rw-r--r--spec/lib/gitlab/ci/pipeline/expression/lexer_spec.rb30
1 files changed, 30 insertions, 0 deletions
diff --git a/spec/lib/gitlab/ci/pipeline/expression/lexer_spec.rb b/spec/lib/gitlab/ci/pipeline/expression/lexer_spec.rb
new file mode 100644
index 00000000000..84d54c5acf2
--- /dev/null
+++ b/spec/lib/gitlab/ci/pipeline/expression/lexer_spec.rb
@@ -0,0 +1,30 @@
+require 'spec_helper'
+
+describe Gitlab::Ci::Pipeline::Expression::Lexer do
+ let(:token_class) do
+ Gitlab::Ci::Pipeline::Expression::Token
+ end
+
+ describe '#tokenize' do
+ it 'tokenizes single value' do
+ tokens = described_class.new('$VARIABLE').tokenize
+
+ expect(tokens).to be_one
+ expect(tokens).to all(be_an_instance_of(token_class))
+ end
+
+ it 'does ignore whitespace characters' do
+ tokens = described_class.new("\t$VARIABLE ").tokenize
+
+ expect(tokens).to be_one
+ expect(tokens).to all(be_an_instance_of(token_class))
+ end
+
+ it 'tokenizes multiple values of the same token' do
+ tokens = described_class.new("$VARIABLE1 $VARIABLE2").tokenize
+
+ expect(tokens.size).to eq 2
+ expect(tokens).to all(be_an_instance_of(token_class))
+ end
+ end
+end