diff options
author | Robert Speicher <robert@gitlab.com> | 2016-02-15 20:26:50 +0000 |
---|---|---|
committer | Robert Speicher <robert@gitlab.com> | 2016-02-15 20:26:50 +0000 |
commit | c96b31b77aa71d74275841606834a852e78c347a (patch) | |
tree | 92e9a5d34f93e63535661ffb89f59db28b59cdac | |
parent | c29517aaf420b0d83f21d468b371260f4887cf00 (diff) | |
parent | 447568d15f9ec2d47a15fc04aeb2cb507cd6a55c (diff) | |
download | gitlab-ce-c96b31b77aa71d74275841606834a852e78c347a.tar.gz |
Merge branch 'rs-gitlab-database-module' into 'master'
Fix undefined method `postgresql?` during migration
See merge request !2820
-rw-r--r-- | lib/gitlab/database.rb | 8 | ||||
-rw-r--r-- | spec/lib/gitlab/database_spec.rb | 32 |
2 files changed, 34 insertions, 6 deletions
diff --git a/lib/gitlab/database.rb b/lib/gitlab/database.rb index 6ebb8027553..6f9da69983a 100644 --- a/lib/gitlab/database.rb +++ b/lib/gitlab/database.rb @@ -17,7 +17,7 @@ module Gitlab end def true_value - if self.class.postgresql? + if Gitlab::Database.postgresql? "'t'" else 1 @@ -25,7 +25,7 @@ module Gitlab end def false_value - if self.class.postgresql? + if Gitlab::Database.postgresql? "'f'" else 0 @@ -47,9 +47,5 @@ module Gitlab row.first end end - - def connection - self.class.connection - end end end diff --git a/spec/lib/gitlab/database_spec.rb b/spec/lib/gitlab/database_spec.rb index bd8688fefa1..d0a447753b7 100644 --- a/spec/lib/gitlab/database_spec.rb +++ b/spec/lib/gitlab/database_spec.rb @@ -1,5 +1,9 @@ require 'spec_helper' +class MigrationTest + include Gitlab::Database +end + describe Gitlab::Database, lib: true do # These are just simple smoke tests to check if the methods work (regardless # of what they may return). @@ -34,4 +38,32 @@ describe Gitlab::Database, lib: true do end end end + + describe '#true_value' do + it 'returns correct value for PostgreSQL' do + expect(described_class).to receive(:postgresql?).and_return(true) + + expect(MigrationTest.new.true_value).to eq "'t'" + end + + it 'returns correct value for MySQL' do + expect(described_class).to receive(:postgresql?).and_return(false) + + expect(MigrationTest.new.true_value).to eq 1 + end + end + + describe '#false_value' do + it 'returns correct value for PostgreSQL' do + expect(described_class).to receive(:postgresql?).and_return(true) + + expect(MigrationTest.new.false_value).to eq "'f'" + end + + it 'returns correct value for MySQL' do + expect(described_class).to receive(:postgresql?).and_return(false) + + expect(MigrationTest.new.false_value).to eq 0 + end + end end |