From f20c3837b7bf11c950a3df11c075acac66868750 Mon Sep 17 00:00:00 2001 From: Leopoldthecoder Date: Thu, 18 Jul 2024 16:29:51 +0800 Subject: [PATCH] test(*): add secret component tests --- .../entities-vaults/fixtures/mockData.ts | 22 + .../src/components/SecretForm.cy.ts | 158 +++++++ .../src/components/SecretForm.vue | 2 +- .../src/components/SecretList.cy.ts | 397 ++++++++++++++++++ .../src/components/SecretList.vue | 5 + .../src/components/VaultList.cy.ts | 56 +-- 6 files changed, 611 insertions(+), 29 deletions(-) create mode 100644 packages/entities/entities-vaults/src/components/SecretForm.cy.ts create mode 100644 packages/entities/entities-vaults/src/components/SecretList.cy.ts diff --git a/packages/entities/entities-vaults/fixtures/mockData.ts b/packages/entities/entities-vaults/fixtures/mockData.ts index 240a74a0a5..635cef1981 100644 --- a/packages/entities/entities-vaults/fixtures/mockData.ts +++ b/packages/entities/entities-vaults/fixtures/mockData.ts @@ -70,3 +70,25 @@ export const konnectCardConfig: KonnectVaultEntityConfig = { apiBaseUrl: '/us/kong-api', entityId: '1234', } + +export const secrets: FetcherRawResponse = { + data: [ + { + key: 'secret-1', + }, + { + key: 'secret-2', + }, + ], + total: 2, +} + +export const secrets100: any[] = Array(100) + .fill(null) + .map((_, i) => ({ + key: `secret-${i + 1}`, + })) + +export const secret = { + key: 'secret-1', +} diff --git a/packages/entities/entities-vaults/src/components/SecretForm.cy.ts b/packages/entities/entities-vaults/src/components/SecretForm.cy.ts new file mode 100644 index 0000000000..c80f1fe7c5 --- /dev/null +++ b/packages/entities/entities-vaults/src/components/SecretForm.cy.ts @@ -0,0 +1,158 @@ +// Cypress component test spec file +import type { KonnectSecretFormConfig } from '../types' +import SecretForm from './SecretForm.vue' +import { secret } from '../../fixtures/mockData' + +const cancelRoute = { name: 'view-route' } +const vaultId = '12345-qwerty' + +const baseConfigKonnect: KonnectSecretFormConfig = { + app: 'konnect', + controlPlaneId: '1234-abcd-ilove-cats', + apiBaseUrl: '/us/kong-api', + cancelRoute, +} + +describe('', { viewportHeight: 700, viewportWidth: 700 }, () => { + describe('Konnect', () => { + const interceptKonnect = (params?: { + mockData?: object + alias?: string + }) => { + cy.intercept( + { + method: 'GET', + url: `${baseConfigKonnect.apiBaseUrl}/v2/control-planes/${baseConfigKonnect.controlPlaneId}/core-entities/vaults/${vaultId}/secrets/*`, + }, + { + statusCode: 200, + body: params?.mockData ?? secret, + }, + ).as(params?.alias ?? 'getSecret') + } + + it('should show create form', () => { + cy.mount(SecretForm, { + props: { + config: baseConfigKonnect, + vaultId, + }, + }) + + cy.get('.kong-ui-entities-secret-form').should('be.visible') + cy.get('.kong-ui-entities-secret-form form').should('be.visible') + // button state + cy.getTestId('form-cancel').should('be.visible') + cy.getTestId('form-submit').should('be.visible') + cy.getTestId('form-cancel').should('be.enabled') + cy.getTestId('form-submit').should('be.disabled') + // form fields + cy.getTestId('secret-form-key').should('be.visible') + cy.getTestId('secret-form-value').should('be.visible') + }) + + it('should correctly handle button state - create', () => { + cy.mount(SecretForm, { + props: { + config: baseConfigKonnect, + vaultId, + }, + }) + + cy.get('.kong-ui-entities-secret-form').should('be.visible') + // default button state + cy.getTestId('form-cancel').should('be.visible') + cy.getTestId('form-submit').should('be.visible') + cy.getTestId('form-cancel').should('be.enabled') + cy.getTestId('form-submit').should('be.disabled') + // enables save when required fields have values + cy.getTestId('secret-form-key').type('bicycle-kick') + cy.getTestId('secret-form-value').clear() + cy.getTestId('secret-form-value').type('101') + cy.getTestId('form-submit').should('be.enabled') + // disables save when required field is cleared + cy.getTestId('secret-form-key').clear() + cy.getTestId('form-submit').should('be.disabled') + }) + + it('should show edit form', () => { + interceptKonnect() + + cy.mount(SecretForm, { + props: { + config: baseConfigKonnect, + vaultId, + secretId: secret.key, + }, + }) + + cy.wait('@getSecret') + cy.get('.kong-ui-entities-secret-form').should('be.visible') + // default button state + cy.getTestId('form-cancel').should('be.visible') + cy.getTestId('form-submit').should('be.visible') + cy.getTestId('form-cancel').should('be.enabled') + cy.getTestId('form-submit').should('be.disabled') + // form fields + cy.getTestId('secret-form-key').should('have.value', secret.key) + cy.getTestId('secret-form-value').should('have.value', '') + }) + + it('should correctly handle button state - edit', () => { + interceptKonnect() + + cy.mount(SecretForm, { + props: { + config: baseConfigKonnect, + vaultId, + secretId: secret.key, + }, + }) + + cy.wait('@getSecret') + cy.get('.kong-ui-entities-secret-form').should('be.visible') + // default button state + cy.getTestId('form-cancel').should('be.visible') + cy.getTestId('form-submit').should('be.visible') + cy.getTestId('form-cancel').should('be.enabled') + cy.getTestId('form-submit').should('be.disabled') + // enables save when form has changes + cy.getTestId('secret-form-key').type('ubiquitous') + cy.getTestId('secret-form-value').type('ubiquitous') + cy.getTestId('form-submit').should('be.enabled') + // disables save when form changes are undone + cy.getTestId('secret-form-key').clear() + cy.getTestId('secret-form-value').clear() + cy.getTestId('secret-form-key').type(secret.key) + cy.getTestId('form-submit').should('be.disabled') + }) + + it('should handle error state - failed to load secret', () => { + cy.intercept( + { + method: 'GET', + url: `${baseConfigKonnect.apiBaseUrl}/v2/control-planes/${baseConfigKonnect.controlPlaneId}/core-entities/vaults/${vaultId}/secrets/*`, + }, + { + statusCode: 404, + body: {}, + }, + ).as('getSecret') + + cy.mount(SecretForm, { + props: { + config: baseConfigKonnect, + vaultId, + secretId: secret.key, + }, + }) + + cy.wait('@getSecret') + cy.get('.kong-ui-entities-secret-form').should('be.visible') + // error state is displayed + cy.getTestId('form-fetch-error').should('be.visible') + // form hidden + cy.get('.kong-ui-entities-secret-form form').should('not.exist') + }) + }) +}) diff --git a/packages/entities/entities-vaults/src/components/SecretForm.vue b/packages/entities/entities-vaults/src/components/SecretForm.vue index 12b34522b6..b7c33dab3b 100644 --- a/packages/entities/entities-vaults/src/components/SecretForm.vue +++ b/packages/entities/entities-vaults/src/components/SecretForm.vue @@ -151,7 +151,7 @@ const submitUrl = computed(() => { .replace(/{secretId}/gi, props.secretId) }) -const isFormValid = computed((): boolean => !!state.fields.key || !!state.fields.value) +const isFormValid = computed((): boolean => !!state.fields.key && !!state.fields.value) const changesExist = computed((): boolean => JSON.stringify(state.fields) !== JSON.stringify(originalFields)) const payload = computed((): SecretStateFields => { diff --git a/packages/entities/entities-vaults/src/components/SecretList.cy.ts b/packages/entities/entities-vaults/src/components/SecretList.cy.ts new file mode 100644 index 0000000000..bb2936d5f8 --- /dev/null +++ b/packages/entities/entities-vaults/src/components/SecretList.cy.ts @@ -0,0 +1,397 @@ +// Cypress component test spec file +import SecretList from './SecretList.vue' +import type { FetcherResponse } from '@kong-ui-public/entities-shared' +import type { FetcherRawResponse } from '../../fixtures/mockData' +import { + paginate, + secrets, + secrets100, +} from '../../fixtures/mockData' +import type { KonnectSecretListConfig } from '../types' +import { createMemoryHistory, createRouter } from 'vue-router' +import { v4 as uuidv4 } from 'uuid' + +const viewRoute = 'view-route' +const editRoute = 'edit-route' +const createRoute = 'create-route' +const vaultId = '123-qwerty-french-dj' + +const baseConfigKonnect: KonnectSecretListConfig = { + app: 'konnect', + controlPlaneId: '1234-abcd-ilove-cats', + apiBaseUrl: '/us/kong-api', + createRoute, + getEditRoute: () => editRoute, +} + +describe('', () => { + describe('actions', () => { + beforeEach(() => { + // Initialize a new router before each test + createRouter({ + routes: [ + { path: '/', name: 'list-secret', component: { template: '
ListPage
' } }, + { path: `/${viewRoute}`, name: viewRoute, component: { template: '
DetailPage
' } }, + ], + history: createMemoryHistory(), + }) + + // Mock data for each test in this block + cy.intercept( + { + method: 'GET', + url: `${baseConfigKonnect.apiBaseUrl}/v2/control-planes/${baseConfigKonnect.controlPlaneId}/core-entities/vaults/${vaultId}/secrets*`, + }, + { + statusCode: 200, + body: secrets, + }, + ) + }) + + for (const expected of [false, true]) { + describe(`${expected ? 'allowed' : 'denied'}`, () => { + it(`should ${expected ? '' : 'not'} include the Edit action if canEdit evaluates to ${expected}`, () => { + cy.mount(SecretList, { + props: { + cacheIdentifier: `secret-list-${uuidv4()}`, + config: baseConfigKonnect, + vaultId, + canCreate: () => { }, + canEdit: () => expected, + canDelete: () => { }, + canRetrieve: () => { }, + }, + }) + + cy.getTestId('dropdown-trigger').eq(0).click() + cy.getTestId('action-entity-edit').should(`${expected ? '' : 'not.'}exist`) + }) + + it(`should ${expected ? '' : 'not'} include the Delete action if canDelete evaluates to ${expected}`, () => { + cy.mount(SecretList, { + props: { + cacheIdentifier: `secret-list-${uuidv4()}`, + config: baseConfigKonnect, + vaultId, + canCreate: () => { }, + canEdit: () => { }, + canDelete: () => expected, + canRetrieve: () => { }, + }, + }) + + cy.getTestId('dropdown-trigger').eq(0).click() + cy.getTestId('action-entity-delete').should(`${expected ? '' : 'not.'}exist`) + }) + }) + } + }) + + describe('Konnect', () => { + const interceptKonnect = (params?: { + mockData?: FetcherResponse; + alias?: string; + }) => { + cy.intercept( + { + method: 'GET', + url: `${baseConfigKonnect.apiBaseUrl}/v2/control-planes/${baseConfigKonnect.controlPlaneId}/core-entities/vaults/${vaultId}/secrets*`, + }, + { + statusCode: 200, + body: params?.mockData ?? { + data: [], + total: 0, + }, + }, + ).as(params?.alias ?? 'getSecrets') + } + + const interceptKonnectMultiPage = (params?: { + mockData?: FetcherRawResponse[]; + alias?: string; + }) => { + cy.intercept( + { + method: 'GET', + url: `${baseConfigKonnect.apiBaseUrl}/v2/control-planes/${baseConfigKonnect.controlPlaneId}/core-entities/vaults/${vaultId}/secrets*`, + }, + (req) => { + const size = req.query.size ? Number(req.query.size) : 30 + const offset = req.query.offset ? Number(req.query.offset) : 0 + + req.reply({ + statusCode: 200, + body: paginate(params?.mockData ?? [], size, offset), + }) + }, + ).as(params?.alias ?? 'getSecretsMultiPage') + } + + it('should show empty state and create secret cta', () => { + interceptKonnect() + + cy.mount(SecretList, { + props: { + cacheIdentifier: `secret-list-${uuidv4()}`, + config: baseConfigKonnect, + vaultId, + canCreate: () => true, + canEdit: () => { }, + canDelete: () => { }, + canRetrieve: () => { }, + }, + }) + + cy.wait('@getSecrets') + cy.get('.kong-ui-entities-secrets-list').should('be.visible') + cy.get('.table-empty-state').should('be.visible') + cy.get('[data-testid="store-new-secret"]').should('be.visible') + }) + + it('should hide empty state and create secret cta if user can not create', () => { + interceptKonnect() + + cy.mount(SecretList, { + props: { + cacheIdentifier: `secret-list-${uuidv4()}`, + config: baseConfigKonnect, + vaultId, + canCreate: () => false, + canEdit: () => { }, + canDelete: () => { }, + canRetrieve: () => { }, + }, + }) + + cy.wait('@getSecrets') + cy.get('.kong-ui-entities-secrets-list').should('be.visible') + cy.get('.table-empty-state').should('be.visible') + cy.get('[data-testid="new-secret"]').should('not.exist') + }) + + it('should handle error state', () => { + const testHandleErrorRequest = (message?: string) => { + cy.intercept( + { + method: 'GET', + url: `${baseConfigKonnect.apiBaseUrl}/v2/control-planes/${baseConfigKonnect.controlPlaneId}/core-entities/vaults/${vaultId}/secrets*`, + }, + { + statusCode: 500, + body: message ? { message } : {}, + }, + ).as('getSecrets') + + cy.mount(SecretList, { + props: { + cacheIdentifier: `secret-list-${uuidv4()}`, + config: baseConfigKonnect, + vaultId, + canCreate: () => { }, + canEdit: () => { }, + canDelete: () => { }, + canRetrieve: () => { }, + }, + }) + + cy.wait('@getSecrets') + cy.get('.kong-ui-entities-secrets-list').should('be.visible') + cy.get('.table-error-state').should('be.visible') + if (message) { + cy.get('.table-error-state .empty-state-message').should('contain.text', message) + } + } + + testHandleErrorRequest() + testHandleErrorRequest('Custom error message') + }) + + it('should show secret items', () => { + interceptKonnect({ + mockData: secrets, + }) + + cy.mount(SecretList, { + props: { + cacheIdentifier: `secret-list-${uuidv4()}`, + config: baseConfigKonnect, + vaultId, + canCreate: () => { }, + canEdit: () => { }, + canDelete: () => { }, + canRetrieve: () => { }, + }, + }) + + cy.wait('@getSecrets') + cy.get('.kong-ui-entities-secrets-list tr[data-testid="secret-1"]').should( + 'exist', + ) + cy.get('.kong-ui-entities-secrets-list tr[data-testid="secret-2"]').should( + 'exist', + ) + }) + + it('should allow switching between pages', () => { + interceptKonnectMultiPage({ + mockData: secrets100, + }) + + cy.mount(SecretList, { + props: { + cacheIdentifier: `secret-list-${uuidv4()}`, + config: baseConfigKonnect, + vaultId, + canCreate: () => { }, + canEdit: () => { }, + canDelete: () => { }, + canRetrieve: () => { }, + }, + }) + + const l = '.kong-ui-entities-secrets-list' + const p = '[data-testid="table-pagination"]' + + cy.wait('@getSecretsMultiPage') + + // Page #1 + cy.get(`${l} tbody tr`).should('have.length', 30) + cy.get(`${l} tbody tr[data-testid="secret-1"]`).should('exist') + cy.get(`${l} tbody tr[data-testid="secret-2"]`).should('exist') + cy.get(`${l} tbody tr[data-testid="secret-29"]`).should('exist') + cy.get(`${l} tbody tr[data-testid="secret-30"]`).should('exist') + + cy.get(`${l} ${p}`).should('exist') + cy.get(`${l} ${p} [data-testid="previous-button"]`).should( + 'have.attr', + 'disabled', + ) + cy.get(`${l} ${p} [data-testid="next-button"]`) + .click() // next page + + cy.wait('@getSecretsMultiPage') + + // Page #2 + cy.get(`${l} tbody tr`).should('have.length', 30) + cy.get(`${l} tbody tr[data-testid="secret-31"]`).should('exist') + cy.get(`${l} tbody tr[data-testid="secret-32"]`).should('exist') + cy.get(`${l} tbody tr[data-testid="secret-59"]`).should('exist') + cy.get(`${l} tbody tr[data-testid="secret-60"]`).should('exist') + + cy.get(`${l} ${p} [data-testid="previous-button"]`).should( + 'not.have.attr', + 'disabled', + ) + cy.get(`${l} ${p} [data-testid="next-button"]`) + .click() // next page + + cy.wait('@getSecretsMultiPage') + + cy.get(`${l} ${p} [data-testid="next-button"]`) + .click() // next page + + // Page #4 + cy.get(`${l} tbody tr`).should('have.length', 10) + cy.get(`${l} tbody tr[data-testid="secret-91"]`).should('exist') + cy.get(`${l} tbody tr[data-testid="secret-92"]`).should('exist') + cy.get(`${l} tbody tr[data-testid="secret-99"]`).should('exist') + cy.get(`${l} tbody tr[data-testid="secret-100"]`).should('exist') + + cy.get(`${l} ${p} [data-testid="previous-button"]`).should( + 'not.have.attr', + 'disabled', + ) + cy.get(`${l} ${p} [data-testid="next-button"]`).should( + 'have.attr', + 'disabled', + ) + }) + + it('should allow picking different page sizes and persist the preference', () => { + const cacheIdentifier = `secret-list-${uuidv4()}` + + interceptKonnectMultiPage({ + mockData: secrets100, + }) + + cy.mount(SecretList, { + props: { + cacheIdentifier, + config: baseConfigKonnect, + vaultId, + canCreate: () => { }, + canEdit: () => { }, + canDelete: () => { }, + canRetrieve: () => { }, + }, + }) + .then(({ wrapper }) => wrapper) + .as('vueWrapper') + + const l = '.kong-ui-entities-secrets-list' + const p = '[data-testid="table-pagination"]' + + cy.wait('@getSecretsMultiPage') + + cy.get(`${l} tbody tr`).should('have.length', 30) + cy.get(`${l} tbody tr[data-testid="secret-1"]`).should('exist') + cy.get(`${l} tbody tr[data-testid="secret-2"]`).should('exist') + cy.get(`${l} tbody tr[data-testid="secret-29"]`).should('exist') + cy.get(`${l} tbody tr[data-testid="secret-30"]`).should('exist') + + cy.get(`${l} ${p} [data-testid="page-size-dropdown"]`).contains('30 items per page') + cy.get(`${l} ${p} [data-testid="page-size-dropdown"]`).click() + cy.get( + `${l} ${p} [data-testid="page-size-dropdown"] [value="15"]`, + ).last().click() + + cy.wait('@getSecretsMultiPage') + + cy.get(`${l} tbody tr`).should('have.length', 15) + cy.get(`${l} tbody tr[data-testid="secret-1"]`).should('exist') + cy.get(`${l} tbody tr[data-testid="secret-2"]`).should('exist') + cy.get(`${l} tbody tr[data-testid="secret-14"]`).should('exist') + cy.get(`${l} tbody tr[data-testid="secret-15"]`).should('exist') + + // Unmount and mount + cy.get('@vueWrapper').then((wrapper: any) => wrapper.unmount()) + cy.mount(SecretList, { + props: { + cacheIdentifier, + config: baseConfigKonnect, + vaultId, + canCreate: () => { }, + canEdit: () => { }, + canDelete: () => { }, + canRetrieve: () => { }, + }, + }) + + cy.wait('@getSecretsMultiPage') + + cy.get(`${l} tbody tr`).should('have.length', 15) + cy.get(`${l} tbody tr[data-testid="secret-1"]`).should('exist') + cy.get(`${l} tbody tr[data-testid="secret-2"]`).should('exist') + cy.get(`${l} tbody tr[data-testid="secret-14"]`).should('exist') + cy.get(`${l} tbody tr[data-testid="secret-15"]`).should('exist') + + cy.get(`${l} ${p} [data-testid="page-size-dropdown"]`).contains('15 items per page') + cy.get(`${l} ${p} [data-testid="page-size-dropdown"]`).click() + cy.get( + `${l} ${p} [data-testid="page-size-dropdown"] [value="50"]`, + ).last().click() + + cy.wait('@getSecretsMultiPage') + + cy.get(`${l} tbody tr`).should('have.length', 50) + cy.get(`${l} tbody tr[data-testid="secret-1"]`).should('exist') + cy.get(`${l} tbody tr[data-testid="secret-2"]`).should('exist') + cy.get(`${l} tbody tr[data-testid="secret-49"]`).should('exist') + cy.get(`${l} tbody tr[data-testid="secret-50"]`).should('exist') + + cy.get(`${l} ${p} [data-testid="page-size-dropdown"]`).contains('50 items per page') + }) + }) +}) diff --git a/packages/entities/entities-vaults/src/components/SecretList.vue b/packages/entities/entities-vaults/src/components/SecretList.vue index b1c60b8686..d4316ea64a 100644 --- a/packages/entities/entities-vaults/src/components/SecretList.vue +++ b/packages/entities/entities-vaults/src/components/SecretList.vue @@ -12,6 +12,7 @@ pagination-type="offset" preferences-storage-key="kong-ui-entities-secrets-list" :query="filterQuery" + :row-attributes="rowAttrs" :table-headers="tableHeaders" @clear-search-input="clearFilter" > @@ -180,6 +181,10 @@ const fields: BaseTableHeaders = { } const tableHeaders: BaseTableHeaders = fields +const rowAttrs = (row: Record) => ({ + 'data-testid': row.key, +}) + /** * Fetcher & Filtering */ diff --git a/packages/entities/entities-vaults/src/components/VaultList.cy.ts b/packages/entities/entities-vaults/src/components/VaultList.cy.ts index 3b734d1c54..17a40026a1 100644 --- a/packages/entities/entities-vaults/src/components/VaultList.cy.ts +++ b/packages/entities/entities-vaults/src/components/VaultList.cy.ts @@ -175,7 +175,7 @@ describe('', () => { total: 0, }, }, - ).as(params?.alias ?? 'getRoutes') + ).as(params?.alias ?? 'getVaults') } const interceptKMMultiPage = (params?: { @@ -196,7 +196,7 @@ describe('', () => { body: paginate(params?.mockData ?? [], size, offset), }) }, - ).as(params?.alias ?? 'getRoutesMultiPage') + ).as(params?.alias ?? 'getVaultsMultiPage') } it('should show empty state and create vault cta', () => { @@ -213,7 +213,7 @@ describe('', () => { }, }) - cy.wait('@getRoutes') + cy.wait('@getVaults') cy.get('.kong-ui-entities-vaults-list').should('be.visible') cy.get('.table-empty-state').should('be.visible') cy.get('[data-testid="new-vault"]').should('be.visible') @@ -233,7 +233,7 @@ describe('', () => { }, }) - cy.wait('@getRoutes') + cy.wait('@getVaults') cy.get('.kong-ui-entities-vaults-list').should('be.visible') cy.get('.table-empty-state').should('be.visible') cy.get('[data-testid="new-vault"]').should('not.exist') @@ -250,7 +250,7 @@ describe('', () => { statusCode: 500, body: message ? { message } : {}, }, - ).as('getRoutes') + ).as('getVaults') cy.mount(VaultList, { props: { @@ -263,7 +263,7 @@ describe('', () => { }, }) - cy.wait('@getRoutes') + cy.wait('@getVaults') cy.get('.kong-ui-entities-vaults-list').should('be.visible') cy.get('.table-error-state').should('be.visible') if (message) { @@ -291,7 +291,7 @@ describe('', () => { }, }) - cy.wait('@getRoutes') + cy.wait('@getVaults') cy.get('.kong-ui-entities-vaults-list tr[data-testid="vault-1"]').should( 'exist', ) @@ -319,7 +319,7 @@ describe('', () => { const l = '.kong-ui-entities-vaults-list' const p = '[data-testid="table-pagination"]' - cy.wait('@getRoutesMultiPage') + cy.wait('@getVaultsMultiPage') // Page #1 cy.get(`${l} tbody tr`).should('have.length', 30) @@ -336,7 +336,7 @@ describe('', () => { cy.get(`${l} ${p} [data-testid="next-button"]`) .click() // next page - cy.wait('@getRoutesMultiPage') + cy.wait('@getVaultsMultiPage') // Page #2 cy.get(`${l} tbody tr`).should('have.length', 30) @@ -352,7 +352,7 @@ describe('', () => { cy.get(`${l} ${p} [data-testid="next-button"]`) .click() // next page - cy.wait('@getRoutesMultiPage') + cy.wait('@getVaultsMultiPage') cy.get(`${l} ${p} [data-testid="next-button"]`) .click() // next page @@ -397,7 +397,7 @@ describe('', () => { const l = '.kong-ui-entities-vaults-list' const p = '[data-testid="table-pagination"]' - cy.wait('@getRoutesMultiPage') + cy.wait('@getVaultsMultiPage') cy.get(`${l} tbody tr`).should('have.length', 30) cy.get(`${l} tbody tr[data-testid="vault-1"]`).should('exist') @@ -411,7 +411,7 @@ describe('', () => { `${l} ${p} [data-testid="page-size-dropdown"] [value="15"]`, ).last().click() - cy.wait('@getRoutesMultiPage') + cy.wait('@getVaultsMultiPage') cy.get(`${l} tbody tr`).should('have.length', 15) cy.get(`${l} tbody tr[data-testid="vault-1"]`).should('exist') @@ -432,7 +432,7 @@ describe('', () => { }, }) - cy.wait('@getRoutesMultiPage') + cy.wait('@getVaultsMultiPage') cy.get(`${l} tbody tr`).should('have.length', 15) cy.get(`${l} tbody tr[data-testid="vault-1"]`).should('exist') @@ -446,7 +446,7 @@ describe('', () => { `${l} ${p} [data-testid="page-size-dropdown"] [value="50"]`, ).last().click() - cy.wait('@getRoutesMultiPage') + cy.wait('@getVaultsMultiPage') cy.get(`${l} tbody tr`).should('have.length', 50) cy.get(`${l} tbody tr[data-testid="vault-1"]`).should('exist') @@ -475,7 +475,7 @@ describe('', () => { total: 0, }, }, - ).as(params?.alias ?? 'getRoutes') + ).as(params?.alias ?? 'getVaults') } const interceptKonnectMultiPage = (params?: { @@ -496,7 +496,7 @@ describe('', () => { body: paginate(params?.mockData ?? [], size, offset), }) }, - ).as(params?.alias ?? 'getRoutesMultiPage') + ).as(params?.alias ?? 'getVaultsMultiPage') } it('should show empty state and create vault cta', () => { @@ -513,7 +513,7 @@ describe('', () => { }, }) - cy.wait('@getRoutes') + cy.wait('@getVaults') cy.get('.kong-ui-entities-vaults-list').should('be.visible') cy.get('.table-empty-state').should('be.visible') cy.get('[data-testid="new-vault"]').should('be.visible') @@ -533,7 +533,7 @@ describe('', () => { }, }) - cy.wait('@getRoutes') + cy.wait('@getVaults') cy.get('.kong-ui-entities-vaults-list').should('be.visible') cy.get('.table-empty-state').should('be.visible') cy.get('[data-testid="new-vault"]').should('not.exist') @@ -550,7 +550,7 @@ describe('', () => { statusCode: 500, body: message ? { message } : {}, }, - ).as('getRoutes') + ).as('getVaults') cy.mount(VaultList, { props: { @@ -563,7 +563,7 @@ describe('', () => { }, }) - cy.wait('@getRoutes') + cy.wait('@getVaults') cy.get('.kong-ui-entities-vaults-list').should('be.visible') cy.get('.table-error-state').should('be.visible') if (message) { @@ -591,7 +591,7 @@ describe('', () => { }, }) - cy.wait('@getRoutes') + cy.wait('@getVaults') cy.get('.kong-ui-entities-vaults-list tr[data-testid="vault-1"]').should( 'exist', ) @@ -619,7 +619,7 @@ describe('', () => { const l = '.kong-ui-entities-vaults-list' const p = '[data-testid="table-pagination"]' - cy.wait('@getRoutesMultiPage') + cy.wait('@getVaultsMultiPage') // Page #1 cy.get(`${l} tbody tr`).should('have.length', 30) @@ -636,7 +636,7 @@ describe('', () => { cy.get(`${l} ${p} [data-testid="next-button"]`) .click() // next page - cy.wait('@getRoutesMultiPage') + cy.wait('@getVaultsMultiPage') // Page #2 cy.get(`${l} tbody tr`).should('have.length', 30) @@ -652,7 +652,7 @@ describe('', () => { cy.get(`${l} ${p} [data-testid="next-button"]`) .click() // next page - cy.wait('@getRoutesMultiPage') + cy.wait('@getVaultsMultiPage') cy.get(`${l} ${p} [data-testid="next-button"]`) .click() // next page @@ -697,7 +697,7 @@ describe('', () => { const l = '.kong-ui-entities-vaults-list' const p = '[data-testid="table-pagination"]' - cy.wait('@getRoutesMultiPage') + cy.wait('@getVaultsMultiPage') cy.get(`${l} tbody tr`).should('have.length', 30) cy.get(`${l} tbody tr[data-testid="vault-1"]`).should('exist') @@ -711,7 +711,7 @@ describe('', () => { `${l} ${p} [data-testid="page-size-dropdown"] [value="15"]`, ).last().click() - cy.wait('@getRoutesMultiPage') + cy.wait('@getVaultsMultiPage') cy.get(`${l} tbody tr`).should('have.length', 15) cy.get(`${l} tbody tr[data-testid="vault-1"]`).should('exist') @@ -732,7 +732,7 @@ describe('', () => { }, }) - cy.wait('@getRoutesMultiPage') + cy.wait('@getVaultsMultiPage') cy.get(`${l} tbody tr`).should('have.length', 15) cy.get(`${l} tbody tr[data-testid="vault-1"]`).should('exist') @@ -746,7 +746,7 @@ describe('', () => { `${l} ${p} [data-testid="page-size-dropdown"] [value="50"]`, ).last().click() - cy.wait('@getRoutesMultiPage') + cy.wait('@getVaultsMultiPage') cy.get(`${l} tbody tr`).should('have.length', 50) cy.get(`${l} tbody tr[data-testid="vault-1"]`).should('exist')