44 lines
917 B
Ruby
44 lines
917 B
Ruby
|
require 'spec_helper'
|
||
|
|
||
|
describe Gitlab::Ci::Config::Node::Attributable do
|
||
|
let(:node) { Class.new }
|
||
|
let(:instance) { node.new }
|
||
|
|
||
|
before do
|
||
|
node.include(described_class)
|
||
|
|
||
|
node.class_eval do
|
||
|
attributes :name, :test
|
||
|
end
|
||
|
end
|
||
|
|
||
|
context 'config is a hash' do
|
||
|
before do
|
||
|
allow(instance)
|
||
|
.to receive(:config)
|
||
|
.and_return({ name: 'some name', test: 'some test' })
|
||
|
end
|
||
|
|
||
|
it 'returns the value of config' do
|
||
|
expect(instance.name).to eq 'some name'
|
||
|
expect(instance.test).to eq 'some test'
|
||
|
end
|
||
|
|
||
|
it 'returns no method error for unknown attributes' do
|
||
|
expect { instance.unknown }.to raise_error(NoMethodError)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
context 'config is not a hash' do
|
||
|
before do
|
||
|
allow(instance)
|
||
|
.to receive(:config)
|
||
|
.and_return('some test')
|
||
|
end
|
||
|
|
||
|
it 'returns nil' do
|
||
|
expect(instance.test).to be_nil
|
||
|
end
|
||
|
end
|
||
|
end
|