Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/models/ci/catalog/resources/version_spec.rb')
-rw-r--r--spec/models/ci/catalog/resources/version_spec.rb48
1 files changed, 25 insertions, 23 deletions
diff --git a/spec/models/ci/catalog/resources/version_spec.rb b/spec/models/ci/catalog/resources/version_spec.rb
index bacaa6355fe..c91b2c71241 100644
--- a/spec/models/ci/catalog/resources/version_spec.rb
+++ b/spec/models/ci/catalog/resources/version_spec.rb
@@ -119,29 +119,6 @@ RSpec.describe Ci::Catalog::Resources::Version, type: :model, feature_category:
end
end
- describe '#update_catalog_resource' do
- let_it_be(:release) { create(:release, project: project1, tag: 'v1') }
- let(:version) { build(:ci_catalog_resource_version, catalog_resource: resource1, release: release) }
-
- context 'when a version is created' do
- it 'calls update_catalog_resource' do
- expect(version).to receive(:update_catalog_resource).once
-
- version.save!
- end
- end
-
- context 'when a version is destroyed' do
- it 'calls update_catalog_resource' do
- version.save!
-
- expect(version).to receive(:update_catalog_resource).once
-
- version.destroy!
- end
- end
- end
-
describe '#name' do
it 'is equivalent to release.tag' do
v1_0.release.update!(name: 'Release v1.0')
@@ -172,4 +149,29 @@ RSpec.describe Ci::Catalog::Resources::Version, type: :model, feature_category:
expect(v1_1.readme.data).to include('Readme v1.1')
end
end
+
+ describe 'synchronizing released_at with `releases` table using model callbacks' do
+ let_it_be(:project) { create(:project) }
+ let_it_be(:resource) { create(:ci_catalog_resource, project: project) }
+
+ let_it_be_with_reload(:release) do
+ create(:release, :with_catalog_resource_version, project: project, tag: 'v1', released_at: '2023-01-01T00:00:00Z')
+ end
+
+ let(:version) { release.catalog_resource_version }
+
+ context 'when the version is created' do
+ it 'updates released_at to match the release' do
+ expect(version.read_attribute(:released_at)).to eq(release.released_at)
+ end
+ end
+
+ context 'when release.released_at is updated' do
+ it 'updates released_at to match the release' do
+ release.update!(released_at: '2023-02-02T00:00:00Z')
+
+ expect(version.read_attribute(:released_at)).to eq(release.released_at)
+ end
+ end
+ end
end