diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-12-11 00:11:20 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-12-11 00:11:20 +0300 |
commit | 9fee94931194cf43bbf804356a75226b282227f7 (patch) | |
tree | df3303f3103683fa442dcebf86b1d79996365754 /spec/migrations | |
parent | ca5de528358c23e9cfcb0ff0f42c4106310c3811 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/migrations')
-rw-r--r-- | spec/migrations/20211130165043_backfill_sequence_column_for_sprints_table_spec.rb | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/spec/migrations/20211130165043_backfill_sequence_column_for_sprints_table_spec.rb b/spec/migrations/20211130165043_backfill_sequence_column_for_sprints_table_spec.rb new file mode 100644 index 00000000000..809ee53462f --- /dev/null +++ b/spec/migrations/20211130165043_backfill_sequence_column_for_sprints_table_spec.rb @@ -0,0 +1,42 @@ +# frozen_string_literal: true + +require 'spec_helper' + +require_migration! + +RSpec.describe BackfillSequenceColumnForSprintsTable, :migration, schema: 20211126042235 do + let(:migration) { described_class.new } + let(:namespaces) { table(:namespaces) } + let(:sprints) { table(:sprints) } + let(:iterations_cadences) { table(:iterations_cadences) } + + let!(:group) { namespaces.create!(name: 'foo', path: 'foo') } + let!(:cadence_1) { iterations_cadences.create!(group_id: group.id, title: "cadence 1") } + let!(:cadence_2) { iterations_cadences.create!(group_id: group.id, title: "cadence 2") } + let!(:iteration_1) { sprints.create!(id: 1, group_id: group.id, iterations_cadence_id: cadence_1.id, start_date: Date.new(2021, 11, 1), due_date: Date.new(2021, 11, 5), iid: 1, title: 'a' ) } + let!(:iteration_2) { sprints.create!(id: 2, group_id: group.id, iterations_cadence_id: cadence_1.id, start_date: Date.new(2021, 12, 1), due_date: Date.new(2021, 12, 5), iid: 2, title: 'b') } + let!(:iteration_3) { sprints.create!(id: 3, group_id: group.id, iterations_cadence_id: cadence_2.id, start_date: Date.new(2021, 12, 1), due_date: Date.new(2021, 12, 5), iid: 4, title: 'd') } + let!(:iteration_4) { sprints.create!(id: 4, group_id: group.id, iterations_cadence_id: nil, start_date: Date.new(2021, 11, 15), due_date: Date.new(2021, 11, 20), iid: 3, title: 'c') } + + describe '#up' do + it "correctly sets the sequence attribute with idempotency" do + migration.up + + expect(iteration_1.reload.sequence).to be 1 + expect(iteration_2.reload.sequence).to be 2 + expect(iteration_3.reload.sequence).to be 1 + expect(iteration_4.reload.sequence).to be nil + + iteration_5 = sprints.create!(id: 5, group_id: group.id, iterations_cadence_id: cadence_1.id, start_date: Date.new(2022, 1, 1), due_date: Date.new(2022, 1, 5), iid: 1, title: 'e' ) + + migration.down + migration.up + + expect(iteration_1.reload.sequence).to be 1 + expect(iteration_2.reload.sequence).to be 2 + expect(iteration_5.reload.sequence).to be 3 + expect(iteration_3.reload.sequence).to be 1 + expect(iteration_4.reload.sequence).to be nil + end + end +end |