From c4566baeacb61d7cc2855690e1fe39e6559ef608 Mon Sep 17 00:00:00 2001 From: Jaanus Sellin Date: Thu, 23 May 2024 12:01:04 +0300 Subject: [PATCH] chore: rename roles toggles to flag (#7123) Running migration to update roles descriptions. --- .../integration/feature/feature.spec.ts | 2 +- ...40523113322-roles-toggle-to-flag-rename.js | 32 +++++++++++++++++++ .../favor-permission-name-over-id.e2e.test.ts | 7 ++-- 3 files changed, 38 insertions(+), 3 deletions(-) create mode 100644 src/migrations/20240523113322-roles-toggle-to-flag-rename.js diff --git a/frontend/cypress/integration/feature/feature.spec.ts b/frontend/cypress/integration/feature/feature.spec.ts index f2b0e5a677..ec3dd69b80 100644 --- a/frontend/cypress/integration/feature/feature.spec.ts +++ b/frontend/cypress/integration/feature/feature.spec.ts @@ -32,7 +32,7 @@ describe('feature', () => { it('gives an error if a toggle exists with the same name', () => { cy.createFeature_UI(featureToggleName, false, projectName); cy.get("[data-testid='INPUT_ERROR_TEXT']").contains( - 'A toggle with that name already exists', + 'A flag with that name already exists', ); }); diff --git a/src/migrations/20240523113322-roles-toggle-to-flag-rename.js b/src/migrations/20240523113322-roles-toggle-to-flag-rename.js new file mode 100644 index 0000000000..a0e9a15be8 --- /dev/null +++ b/src/migrations/20240523113322-roles-toggle-to-flag-rename.js @@ -0,0 +1,32 @@ +exports.up = function (db, cb) { + db.runSql(` + UPDATE roles + SET description = 'Users with the project owner role have full control over the project, and can add and manage other users within the project context, manage feature flags within the project, and control advanced project features like archiving and deleting the project.' + WHERE name = 'Owner' + AND type = 'project'; + + UPDATE roles + SET description = 'Users with the project member role are allowed to view, create, and update feature flags within a project, but have limited permissions in regards to managing the project''s user access and can not archive or delete the project.' + WHERE name = 'Member' + AND type = 'project'; + + `, cb); +}; + +exports.down = function (db, cb) { + db.runSql( + ` + UPDATE roles + SET description = 'Users with the project owner role have full control over the project, and can add and manage other users within the project context, manage feature toggles within the project, and control advanced project features like archiving and deleting the project.' + WHERE name = 'Owner' + AND type = 'project'; + + UPDATE roles + SET description = 'Users with the project member role are allowed to view, create, and update feature toggles within a project, but have limited permissions in regards to managing the project''s user access and can not archive or delete the project.' + WHERE name = 'Member' + AND type = 'project'; + + `, + cb, + ); +}; diff --git a/src/test/e2e/favor-permission-name-over-id.e2e.test.ts b/src/test/e2e/favor-permission-name-over-id.e2e.test.ts index f51448a24b..a7a5b74088 100644 --- a/src/test/e2e/favor-permission-name-over-id.e2e.test.ts +++ b/src/test/e2e/favor-permission-name-over-id.e2e.test.ts @@ -110,6 +110,9 @@ test('Favor permission name over id migration correctly assigns permissions by n { role_id: 101, permission: 'TEST_PERMISSION_4' }, ]); + // Run the toggle to flag update migration + await dbm.up('20240523113322-roles-toggle-to-flag-rename.js'); + // Check the results that ensure the default roles exist and have the correct permissions const { rows: resultsRoles } = await client.query(` SELECT name, description, type FROM "favor_permission_name_over_id_test"."roles" WHERE id != 101 ORDER BY created_at; @@ -142,13 +145,13 @@ test('Favor permission name over id migration correctly assigns permissions by n { name: 'Owner', description: - 'Users with the project owner role have full control over the project, and can add and manage other users within the project context, manage feature toggles within the project, and control advanced project features like archiving and deleting the project.', + 'Users with the project owner role have full control over the project, and can add and manage other users within the project context, manage feature flags within the project, and control advanced project features like archiving and deleting the project.', type: 'project', }, { name: 'Member', description: - "Users with the project member role are allowed to view, create, and update feature toggles within a project, but have limited permissions in regards to managing the project's user access and can not archive or delete the project.", + "Users with the project member role are allowed to view, create, and update feature flags within a project, but have limited permissions in regards to managing the project's user access and can not archive or delete the project.", type: 'project', }, ]);