diff options
author | Mayra Cabrera <mcabrera@gitlab.com> | 2018-04-06 14:48:17 -0500 |
---|---|---|
committer | Mayra Cabrera <mcabrera@gitlab.com> | 2018-04-06 22:28:44 -0500 |
commit | 5bc58bac2678aed9c8b2318f9f4d4825baa2b110 (patch) | |
tree | f35313fd689afa287f6c93a3d78ce8a0d61cc71c /spec | |
parent | d6450717abefbe4dbf891cb4d285f6c84e44f168 (diff) | |
download | gitlab-ce-5bc58bac2678aed9c8b2318f9f4d4825baa2b110.tar.gz |
Handle limit for datetime attributes on MySQL
The TIMESTAMP data type is used for values that contain both date and
time parts. TIMESTAMP has a range of '1970-01-01 00:00:01' UTC to
'2038-01-19 03:14:07' UTC.
A Forever lib class was included to handle future dates for PostgreSQL
and MySQL, also changes were made to DeployToken to enforce Forever.date
Also removes extra conditional from JwtController
Diffstat (limited to 'spec')
-rw-r--r-- | spec/features/projects/settings/repository_settings_spec.rb | 14 | ||||
-rw-r--r-- | spec/lib/forever_spec.rb | 21 | ||||
-rw-r--r-- | spec/models/deploy_token_spec.rb | 38 | ||||
-rw-r--r-- | spec/services/deploy_tokens/create_service_spec.rb | 4 |
4 files changed, 62 insertions, 15 deletions
diff --git a/spec/features/projects/settings/repository_settings_spec.rb b/spec/features/projects/settings/repository_settings_spec.rb index 2528c7f437d..f2c371b7df5 100644 --- a/spec/features/projects/settings/repository_settings_spec.rb +++ b/spec/features/projects/settings/repository_settings_spec.rb @@ -90,8 +90,7 @@ feature 'Repository settings' do end context 'Deploy tokens' do - let(:deploy_token_project) { create(:project_deploy_token, project: project) } - let!(:deploy_token) { deploy_token_project.deploy_token } + let!(:deploy_token) { create(:deploy_token, projects: [project]) } before do stub_container_registry_config(enabled: true) @@ -115,17 +114,6 @@ feature 'Repository settings' do expect(page).to have_content('Your new project deploy token has been created') end - - scenario 'revoke a deploy token', :js do - within('.deploy-tokens') do - click_link 'Revoke' - click_link "Revoke #{deploy_token.name}" - - expect(page).not_to have_content(deploy_token.name) - expect(page).not_to have_content('read_repository') - expect(page).not_to have_content('read_registry') - end - end end end end diff --git a/spec/lib/forever_spec.rb b/spec/lib/forever_spec.rb new file mode 100644 index 00000000000..cf40c467c72 --- /dev/null +++ b/spec/lib/forever_spec.rb @@ -0,0 +1,21 @@ +require 'spec_helper' + +describe Forever do + describe '.date' do + subject { described_class.date } + + context 'when using PostgreSQL' do + it 'should return Postgresql future date' do + allow(Gitlab::Database).to receive(:postgresql?).and_return(true) + expect(subject).to eq(described_class::POSTGRESQL_DATE) + end + end + + context 'when using MySQL' do + it 'should return MySQL future date' do + allow(Gitlab::Database).to receive(:postgresql?).and_return(false) + expect(subject).to eq(described_class::MYSQL_DATE) + end + end + end +end diff --git a/spec/models/deploy_token_spec.rb b/spec/models/deploy_token_spec.rb index 1adc049ca58..5a15c23def4 100644 --- a/spec/models/deploy_token_spec.rb +++ b/spec/models/deploy_token_spec.rb @@ -93,4 +93,42 @@ describe DeployToken do end end end + + describe '#expires_at' do + context 'when using Forever.date' do + let(:deploy_token) { create(:deploy_token, expires_at: nil) } + + it 'should return nil' do + expect(deploy_token.expires_at).to be_nil + end + end + + context 'when using a personalized date' do + let(:expires_at) { Date.today + 5.months } + let(:deploy_token) { create(:deploy_token, expires_at: expires_at) } + + it 'should return the personalized date' do + expect(deploy_token.expires_at).to eq(expires_at) + end + end + end + + describe '#expires_at=' do + context 'when passing nil' do + let(:deploy_token) { create(:deploy_token, expires_at: nil) } + + it 'should assign Forever.date' do + expect(deploy_token.read_attribute(:expires_at)).to eq(Forever.date) + end + end + + context 'when passign a value' do + let(:expires_at) { Date.today + 5.months } + let(:deploy_token) { create(:deploy_token, expires_at: expires_at) } + + it 'should respect the value' do + expect(deploy_token.read_attribute(:expires_at)).to eq(expires_at) + end + end + end end diff --git a/spec/services/deploy_tokens/create_service_spec.rb b/spec/services/deploy_tokens/create_service_spec.rb index 2e02b7a28b5..3a2bbf1ecd1 100644 --- a/spec/services/deploy_tokens/create_service_spec.rb +++ b/spec/services/deploy_tokens/create_service_spec.rb @@ -25,8 +25,8 @@ describe DeployTokens::CreateService do context 'when expires at date is not passed' do let(:deploy_token_params) { attributes_for(:deploy_token, expires_at: '') } - it 'should set FOREVER date' do - expect(subject.expires_at).to eq(DeployToken::FOREVER) + it 'should set Forever.date' do + expect(subject.read_attribute(:expires_at)).to eq(Forever.date) end end |