summaryrefslogtreecommitdiff
path: root/spec/models
diff options
context:
space:
mode:
authorSean McGivern <sean@mcgivern.me.uk>2017-06-29 15:20:47 +0000
committerSean McGivern <sean@mcgivern.me.uk>2017-06-29 15:20:47 +0000
commit31c21d50fcd64bf9a2fde0e2358a416237334be2 (patch)
treefeeb5b74fde011168d44a8af6a52a29691811ddb /spec/models
parent0b704d4ece1fd42b324a85befaace9f7c5345f3d (diff)
parentaf1f6844c98bfb4adda1c20dc75b808f031a4256 (diff)
downloadgitlab-ce-31c21d50fcd64bf9a2fde0e2358a416237334be2.tar.gz
Merge branch 'sha-attributes-for-postgresql-and-mysql' into 'master'
Added code for defining SHA attributes See merge request !12555
Diffstat (limited to 'spec/models')
-rw-r--r--spec/models/concerns/sha_attribute_spec.rb27
1 files changed, 27 insertions, 0 deletions
diff --git a/spec/models/concerns/sha_attribute_spec.rb b/spec/models/concerns/sha_attribute_spec.rb
new file mode 100644
index 00000000000..9e37c2b20c4
--- /dev/null
+++ b/spec/models/concerns/sha_attribute_spec.rb
@@ -0,0 +1,27 @@
+require 'spec_helper'
+
+describe ShaAttribute do
+ let(:model) { Class.new { include ShaAttribute } }
+
+ before do
+ columns = [
+ double(:column, name: 'name', type: :text),
+ double(:column, name: 'sha1', type: :binary)
+ ]
+
+ allow(model).to receive(:columns).and_return(columns)
+ end
+
+ describe '#sha_attribute' do
+ it 'defines a SHA attribute for a binary column' do
+ expect(model).to receive(:attribute)
+ .with(:sha1, an_instance_of(Gitlab::Database::ShaAttribute))
+
+ model.sha_attribute(:sha1)
+ end
+
+ it 'raises ArgumentError when the column type is not :binary' do
+ expect { model.sha_attribute(:name) }.to raise_error(ArgumentError)
+ end
+ end
+end