From 185b094c84f2aeaf3b5437f86f31300200301333 Mon Sep 17 00:00:00 2001 From: Mosam219 Date: Sun, 4 May 2025 20:39:15 +0530 Subject: [PATCH 1/3] bug: hides virtual registry scopes for project deploy tokens --- .../components/new_deploy_token.vue | 4 ++-- .../components/new_deploy_token_spec.js | 20 +++++++++++++++++-- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/app/assets/javascripts/deploy_tokens/components/new_deploy_token.vue b/app/assets/javascripts/deploy_tokens/components/new_deploy_token.vue index a16c4b7051eb5b..3ac5786453edca 100644 --- a/app/assets/javascripts/deploy_tokens/components/new_deploy_token.vue +++ b/app/assets/javascripts/deploy_tokens/components/new_deploy_token.vue @@ -116,14 +116,14 @@ export default { }, { id: 'deploy_token_read_virtual_registry', - isShown: this.$props.dependencyProxyEnabled, + isShown: this.$props.dependencyProxyEnabled && this.$props.tokenType !== 'project', value: false, helpText: this.$options.translations.readVirtualRegistryHelp, scopeName: 'read_virtual_registry', }, { id: 'deploy_token_write_virtual_registry', - isShown: this.$props.dependencyProxyEnabled, + isShown: this.$props.dependencyProxyEnabled && this.$props.tokenType !== 'project', value: false, helpText: this.$options.translations.writeVirtualRegistryHelp, scopeName: 'write_virtual_registry', diff --git a/spec/frontend/deploy_tokens/components/new_deploy_token_spec.js b/spec/frontend/deploy_tokens/components/new_deploy_token_spec.js index 2da75ad1f8cb7d..ba198bb2e8838e 100644 --- a/spec/frontend/deploy_tokens/components/new_deploy_token_spec.js +++ b/spec/frontend/deploy_tokens/components/new_deploy_token_spec.js @@ -151,9 +151,25 @@ describe('New Deploy Token', () => { }); }); - describe('with dependency proxy enabled', () => { + describe('virtual registry scopes for project deploy tokens', () => { beforeEach(() => { - wrapper = factory(); + wrapper = factory({ tokenType: 'project' }); + }); + + it('should not show the virtual registry scopes', () => { + wrapper + .findAllComponents(GlFormCheckbox) + .wrappers.forEach((checkbox) => expect(checkbox.text()).not.toBe('read_virtual_registry')); + + wrapper + .findAllComponents(GlFormCheckbox) + .wrappers.forEach((checkbox) => expect(checkbox.text()).not.toBe('write_virtual_registry')); + }); + }); + + describe('virtual registry scopes for group deploy tokens when dependency proxy is enabled', () => { + beforeEach(() => { + wrapper = factory({ tokenType: 'group' }); }); it('should show the read virtual registry scope', () => { -- GitLab From 28fa3cf18a8e8d24ea684bc56cd50ff45cb64657 Mon Sep 17 00:00:00 2001 From: Mosam219 Date: Sun, 4 May 2025 23:04:13 +0530 Subject: [PATCH 2/3] Bug: changes for test cases of new deploy token --- .../components/new_deploy_token_spec.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/spec/frontend/deploy_tokens/components/new_deploy_token_spec.js b/spec/frontend/deploy_tokens/components/new_deploy_token_spec.js index ba198bb2e8838e..084e576a0e9fdc 100644 --- a/spec/frontend/deploy_tokens/components/new_deploy_token_spec.js +++ b/spec/frontend/deploy_tokens/components/new_deploy_token_spec.js @@ -75,8 +75,8 @@ describe('New Deploy Token', () => { writeRegistry.vm.$emit('input', writeRegistryValue); readPackageRegistry.vm.$emit('input', readPackageRegistryValue); writePackageRegistry.vm.$emit('input', writePackageRegistryValue); - writeVirtualRegistry.vm.$emit('input', writeVirtualRegistryValue); - readVirtualRegistry.vm.$emit('input', readVirtualRegistryValue); + if (writeVirtualRegistry) writeVirtualRegistry.vm.$emit('input', writeVirtualRegistryValue); + if (readVirtualRegistry) readVirtualRegistry.vm.$emit('input', readVirtualRegistryValue); }; const setTokenName = ({ nameVal = 'test name', usernameVal = 'test username' } = {}) => { @@ -191,8 +191,8 @@ describe('New Deploy Token', () => { read_repository: true, read_registry: true, write_registry: true, - read_virtual_registry: true, - write_virtual_registry: true, + read_virtual_registry: false, + write_virtual_registry: false, read_package_registry: true, write_package_registry: true, }; @@ -303,9 +303,8 @@ describe('New Deploy Token', () => { }); describe('help text for write_package_registry scope', () => { - const findWriteRegistryScopeCheckbox = () => findAllCheckboxes().at(6); - describe('with project tokenType', () => { + const findWriteRegistryScopeCheckbox = () => findAllCheckboxes().at(4); beforeEach(() => { wrapper = factory(); }); @@ -318,6 +317,7 @@ describe('New Deploy Token', () => { }); describe('with group tokenType', () => { + const findWriteRegistryScopeCheckbox = () => findAllCheckboxes().at(6); beforeEach(() => { wrapper = factory({ tokenType: 'group' }); }); -- GitLab From 2644e003fedaa1023e3e24790970c966b6fa73de Mon Sep 17 00:00:00 2001 From: Mosam219 Date: Tue, 6 May 2025 19:31:07 +0530 Subject: [PATCH 3/3] bug: moves dependency proxy enabled for project logic to backend --- .../components/new_deploy_token.vue | 4 +-- .../shared/deploy_tokens/_table.html.haml | 2 +- .../components/new_deploy_token_spec.js | 32 +++++-------------- 3 files changed, 11 insertions(+), 27 deletions(-) diff --git a/app/assets/javascripts/deploy_tokens/components/new_deploy_token.vue b/app/assets/javascripts/deploy_tokens/components/new_deploy_token.vue index 3ac5786453edca..a16c4b7051eb5b 100644 --- a/app/assets/javascripts/deploy_tokens/components/new_deploy_token.vue +++ b/app/assets/javascripts/deploy_tokens/components/new_deploy_token.vue @@ -116,14 +116,14 @@ export default { }, { id: 'deploy_token_read_virtual_registry', - isShown: this.$props.dependencyProxyEnabled && this.$props.tokenType !== 'project', + isShown: this.$props.dependencyProxyEnabled, value: false, helpText: this.$options.translations.readVirtualRegistryHelp, scopeName: 'read_virtual_registry', }, { id: 'deploy_token_write_virtual_registry', - isShown: this.$props.dependencyProxyEnabled && this.$props.tokenType !== 'project', + isShown: this.$props.dependencyProxyEnabled, value: false, helpText: this.$options.translations.writeVirtualRegistryHelp, scopeName: 'write_virtual_registry', diff --git a/app/views/shared/deploy_tokens/_table.html.haml b/app/views/shared/deploy_tokens/_table.html.haml index 4ecaf7f6fc95cc..68c1b7f776c000 100644 --- a/app/views/shared/deploy_tokens/_table.html.haml +++ b/app/views/shared/deploy_tokens/_table.html.haml @@ -39,7 +39,7 @@ - c.with_form do #js-new-deploy-token{ data: { container_registry_enabled: container_registry_enabled?(group_or_project), - dependency_proxy_enabled: dependency_proxy_enabled?(group_or_project), + dependency_proxy_enabled: dependency_proxy_enabled?(group_or_project) && group_or_project.is_a?(Group), packages_registry_enabled: packages_registry_enabled?(group_or_project), create_new_token_path: create_deploy_token_path(group_or_project), token_type: group_or_project.is_a?(Group) ? 'group' : 'project', diff --git a/spec/frontend/deploy_tokens/components/new_deploy_token_spec.js b/spec/frontend/deploy_tokens/components/new_deploy_token_spec.js index 084e576a0e9fdc..2da75ad1f8cb7d 100644 --- a/spec/frontend/deploy_tokens/components/new_deploy_token_spec.js +++ b/spec/frontend/deploy_tokens/components/new_deploy_token_spec.js @@ -75,8 +75,8 @@ describe('New Deploy Token', () => { writeRegistry.vm.$emit('input', writeRegistryValue); readPackageRegistry.vm.$emit('input', readPackageRegistryValue); writePackageRegistry.vm.$emit('input', writePackageRegistryValue); - if (writeVirtualRegistry) writeVirtualRegistry.vm.$emit('input', writeVirtualRegistryValue); - if (readVirtualRegistry) readVirtualRegistry.vm.$emit('input', readVirtualRegistryValue); + writeVirtualRegistry.vm.$emit('input', writeVirtualRegistryValue); + readVirtualRegistry.vm.$emit('input', readVirtualRegistryValue); }; const setTokenName = ({ nameVal = 'test name', usernameVal = 'test username' } = {}) => { @@ -151,25 +151,9 @@ describe('New Deploy Token', () => { }); }); - describe('virtual registry scopes for project deploy tokens', () => { + describe('with dependency proxy enabled', () => { beforeEach(() => { - wrapper = factory({ tokenType: 'project' }); - }); - - it('should not show the virtual registry scopes', () => { - wrapper - .findAllComponents(GlFormCheckbox) - .wrappers.forEach((checkbox) => expect(checkbox.text()).not.toBe('read_virtual_registry')); - - wrapper - .findAllComponents(GlFormCheckbox) - .wrappers.forEach((checkbox) => expect(checkbox.text()).not.toBe('write_virtual_registry')); - }); - }); - - describe('virtual registry scopes for group deploy tokens when dependency proxy is enabled', () => { - beforeEach(() => { - wrapper = factory({ tokenType: 'group' }); + wrapper = factory(); }); it('should show the read virtual registry scope', () => { @@ -191,8 +175,8 @@ describe('New Deploy Token', () => { read_repository: true, read_registry: true, write_registry: true, - read_virtual_registry: false, - write_virtual_registry: false, + read_virtual_registry: true, + write_virtual_registry: true, read_package_registry: true, write_package_registry: true, }; @@ -303,8 +287,9 @@ describe('New Deploy Token', () => { }); describe('help text for write_package_registry scope', () => { + const findWriteRegistryScopeCheckbox = () => findAllCheckboxes().at(6); + describe('with project tokenType', () => { - const findWriteRegistryScopeCheckbox = () => findAllCheckboxes().at(4); beforeEach(() => { wrapper = factory(); }); @@ -317,7 +302,6 @@ describe('New Deploy Token', () => { }); describe('with group tokenType', () => { - const findWriteRegistryScopeCheckbox = () => findAllCheckboxes().at(6); beforeEach(() => { wrapper = factory({ tokenType: 'group' }); }); -- GitLab