Skip to content

Commit 00f90ca

Browse files
authored
refactor: improve char escaping tests and test data (#41)
- Refactored char escaping tests to use array iteration for test cases in 12.1.1-pkg-man-grouping-crud.spec.ts and 12.2.1-dsh-man-grouping-crud.spec.ts - Renamed genGroupsForEscaping to generateGroupsForEscaping for clarity - Added V_PKG_PMGR_CHAR_ESC_N and V_DSH_DMGR_CHAR_ESC_N test versions for char escaping - Updated imports and test setup to include new test versions - Minor import formatting cleanup in package/versions.ts
1 parent a10e399 commit 00f90ca

File tree

6 files changed

+94
-108
lines changed

6 files changed

+94
-108
lines changed

src/test-data/portal/grouping/dashboard/versions.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,3 +155,9 @@ export const V_DSH_DMGR_PROP_DIF_SPEC_N: Version = {
155155
{ refId: P_PKG_DMGR_USER_R.packageId, version: V_PKG_DMGR_USER_BASE_R.version },
156156
],
157157
} as const
158+
159+
export const V_DSH_DMGR_CHAR_ESC_N: Version = {
160+
...V_DSH_DMGR_N,
161+
version: 'char-escaping',
162+
status: 'draft',
163+
} as const

src/test-data/portal/grouping/package/versions.ts

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,7 @@ import {
77
FILE_P_PETSTORE30_CHANGELOG_BASE,
88
FILE_P_PETSTORE30_CHANGELOG_CHANGED,
99
} from '../../files'
10-
import {
11-
P_PKG_PMGR1_N,
12-
P_PKG_PMGR2_N,
13-
P_PKG_PMGR_R,
14-
P_PKG_PPGR_EDIT_N,
15-
P_PKG_PPGR_GQL_R,
16-
P_PKG_PPGR_REST_R,
17-
P_PKG_PPGR_SETTINGS_R,
18-
} from './packages'
10+
import { P_PKG_PMGR1_N, P_PKG_PMGR2_N, P_PKG_PMGR_R, P_PKG_PPGR_EDIT_N, P_PKG_PPGR_GQL_R, P_PKG_PPGR_REST_R, P_PKG_PPGR_SETTINGS_R } from './packages'
1911
import { V_PKG_DMGR_PET_BASE_R, V_PKG_DMGR_PET_PROP_R } from '../dashboard/versions'
2012
import { V_P_PKG_CHANGELOG_MULTI_BASE_R, V_P_PKG_CHANGELOG_MULTI_CHANGED_R } from '../../changelog/versions'
2113

@@ -116,3 +108,9 @@ export const V_PKG_PPGR_EDIT_N: Version = {
116108
pkg: P_PKG_PPGR_EDIT_N,
117109
version: '2001.1',
118110
} as const
111+
112+
export const V_PKG_PMGR_CHAR_ESC_N: Version = {
113+
...V_PKG_PMGR_N,
114+
version: 'char-escaping',
115+
status: 'draft',
116+
} as const

src/test-data/portal/grouping/utils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import type { OperationGroup } from '@test-data/props'
22
import { REST_API_TYPE } from '@shared/entities'
33
import { GET_PET_BY_TAG_V1 } from '../operations'
44

5-
export const genGroupsForEscaping = ({ pkg, version }: {
5+
export const generateGroupsForEscaping = ({ pkg, version }: {
66
pkg: { packageId: string }
77
version: string
88
}): OperationGroup[] => {

src/tests/portal/12-grouping/12.1.1-pkg-man-grouping-crud.spec.ts

Lines changed: 38 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { test } from '@fixtures'
22
import { expect, expectFile } from '@services/expect-decorator'
33
import { API_TITLES_MAP, FILE_ICON } from '@shared/entities'
44
import {
5-
genGroupsForEscaping,
5+
generateGroupsForEscaping,
66
OGR_PMGR_ADD_TO_EMPTY_N,
77
OGR_PMGR_CHANGE_DESCRIPTION_N,
88
OGR_PMGR_CHANGE_NAME_N,
@@ -12,12 +12,12 @@ import {
1212
OGR_PMGR_DELETE_N,
1313
OGR_TMPL_EXIST_MSG,
1414
P_PKG_PMGR1_N,
15+
V_PKG_PMGR_CHAR_ESC_N,
1516
V_PKG_PMGR_N,
1617
} from '@test-data/portal'
1718
import { PortalPage } from '@portal/pages/PortalPage'
1819
import { VERSION_OVERVIEW_TAB_GROUPS } from '@portal/entities'
1920
import { SHORT_TIMEOUT, TICKET_BASE_URL } from '@test-setup'
20-
import type { OperationGroup, Version } from '@test-data/props'
2121

2222
test.describe('12.1.1 Manual grouping: CRUD (Packages)', () => {
2323

@@ -291,58 +291,47 @@ test.describe('12.1.1 Manual grouping: CRUD (Packages)', () => {
291291
await expectFile(file).toHaveName(OGR_PMGR_CHANGE_DESCRIPTION_N.template!.name)
292292
})
293293

294-
test('[P-MGOP-2.6] Check special char escaping in operation group name',
295-
{
296-
annotation: [
297-
{ type: 'Test Case', description: `${TICKET_BASE_URL}TestCase-A-10190` },
298-
],
299-
},
300-
async ({ sysadminPage: page, apihubTDM: tdm }, testInfo) => {
301-
test.setTimeout(380000)
302-
303-
const portalPage = new PortalPage(page)
304-
const { versionPackagePage: versionPage } = portalPage
305-
const { overviewTab } = versionPage
306-
const { groupsTab } = overviewTab
307-
const { editOperationGroupDialog } = groupsTab
308-
309-
const { retry } = testInfo
310-
const testVersion: Version = {
311-
...V_PKG_PMGR_N,
312-
version: `char-escaping-${retry}`,
313-
status: 'draft',
314-
}
315-
const operationGroups: OperationGroup[] = genGroupsForEscaping(testVersion)
316-
317-
await tdm.publishVersion(testVersion)
318-
319-
for (const group of operationGroups) {
320-
await tdm.createOperationGroup(group)
321-
322-
await test.step(`"${group.groupName}" group name`, async () => {
323-
324-
await portalPage.gotoVersion(testVersion, VERSION_OVERVIEW_TAB_GROUPS)
325-
326-
await test.step(`Open "Edit Operation Group" dialog for "${group.groupName}"`, async () => {
327-
await groupsTab.getGroupRow(group.groupName).openEditGroupDialog()
328-
})
294+
generateGroupsForEscaping(V_PKG_PMGR_CHAR_ESC_N).forEach((group, index) => {
295+
296+
test(`[P-MGOP-2.6.${index}] Check special char escaping in operation group name - "${group.groupName}"`,
297+
{
298+
annotation: [
299+
{ type: 'Test Case', description: `${TICKET_BASE_URL}TestCase-A-10190` },
300+
],
301+
},
302+
async ({ sysadminPage: page, apihubTDM: tdm }, testInfo) => {
303+
const portalPage = new PortalPage(page)
304+
const { versionPackagePage: versionPage } = portalPage
305+
const { overviewTab } = versionPage
306+
const { groupsTab } = overviewTab
307+
const { editOperationGroupDialog } = groupsTab
308+
const testVersion = V_PKG_PMGR_CHAR_ESC_N
309+
const retryGroupName = `${group.groupName}-${testInfo.retry}`
310+
const testGroup = { ...group, groupName: retryGroupName }
311+
312+
await tdm.createOperationGroup(testGroup)
313+
314+
await portalPage.gotoVersion(testVersion, VERSION_OVERVIEW_TAB_GROUPS)
315+
316+
await test.step(`Open "Edit Operation Group" dialog for "${retryGroupName}"`, async () => {
317+
await groupsTab.getGroupRow(retryGroupName).openEditGroupDialog()
318+
})
329319

330-
await test.step('Add operations', async () => {
331-
await editOperationGroupDialog.leftList.getOperationListItem(group.testMeta!.toAdd![0].operations[0]).checkbox.click()
332-
await editOperationGroupDialog.toRightBtn.click()
320+
await test.step('Add operations', async () => {
321+
await editOperationGroupDialog.leftList.getOperationListItem(group.testMeta!.toAdd![0].operations[0]).checkbox.click()
322+
await editOperationGroupDialog.toRightBtn.click()
333323

334-
await expect.soft(editOperationGroupDialog.rightList.getOperationListItem()).toHaveCount(1)
335-
})
324+
await expect.soft(editOperationGroupDialog.rightList.getOperationListItem()).toHaveCount(1)
325+
})
336326

337-
await test.step(`Save the "${group.groupName}" operation group`, async () => {
338-
await editOperationGroupDialog.saveBtn.click()
327+
await test.step(`Save the "${retryGroupName}" operation group`, async () => {
328+
await editOperationGroupDialog.saveBtn.click()
339329

340-
await expect.soft(editOperationGroupDialog.saveBtn).toBeHidden()
341-
await expect.soft(groupsTab.getGroupRow(group.groupName).operationsNumberCell).toHaveText('1')
342-
})
330+
await expect.soft(editOperationGroupDialog.saveBtn).toBeHidden()
331+
await expect.soft(groupsTab.getGroupRow(retryGroupName).operationsNumberCell).toHaveText('1')
343332
})
344-
}
345-
})
333+
})
334+
})
346335

347336
test('[P-MGOP-4.1] Delete a group of operations',
348337
{

src/tests/portal/12-grouping/12.2.1-dsh-man-grouping-crud.spec.ts

Lines changed: 38 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { test } from '@fixtures'
22
import { expect, expectFile } from '@services/expect-decorator'
33
import { API_TITLES_MAP, FILE_ICON } from '@shared/entities'
44
import {
5-
genGroupsForEscaping,
5+
generateGroupsForEscaping,
66
OGR_DMGR_ADD_TO_EMPTY_N,
77
OGR_DMGR_CHANGE_DESCRIPTION_N,
88
OGR_DMGR_CHANGE_NAME_N,
@@ -12,12 +12,12 @@ import {
1212
OGR_DMGR_DELETE_N,
1313
OGR_TMPL_EXIST_MSG,
1414
P_DSH_DMGR1_N,
15+
V_DSH_DMGR_CHAR_ESC_N,
1516
V_DSH_DMGR_N,
1617
} from '@test-data/portal'
1718
import { PortalPage } from '@portal/pages/PortalPage'
1819
import { VERSION_OVERVIEW_TAB_GROUPS } from '@portal/entities'
1920
import { SHORT_TIMEOUT, TICKET_BASE_URL } from '@test-setup'
20-
import type { OperationGroup, Version } from '@test-data/props'
2121

2222
test.describe('12.2.1 Manual grouping: CRUD (Dashboards)', () => {
2323

@@ -295,58 +295,47 @@ test.describe('12.2.1 Manual grouping: CRUD (Dashboards)', () => {
295295
await expectFile(file).toHaveName(OGR_DMGR_CHANGE_DESCRIPTION_N.template!.name)
296296
})
297297

298-
test('[P-MGO-2.6] Check special char escaping in operation group name',
299-
{
300-
annotation: [
301-
{ type: 'Test Case', description: `${TICKET_BASE_URL}TestCase-A-8350` },
302-
],
303-
},
304-
async ({ sysadminPage: page, apihubTDM: tdm }, testInfo) => {
305-
test.setTimeout(380000)
306-
307-
const portalPage = new PortalPage(page)
308-
const { versionPackagePage: versionPage } = portalPage
309-
const { overviewTab } = versionPage
310-
const { groupsTab } = overviewTab
311-
const { editOperationGroupDialog } = groupsTab
312-
313-
const { retry } = testInfo
314-
const testVersion: Version = {
315-
...V_DSH_DMGR_N,
316-
version: `char-escaping-${retry}`,
317-
status: 'draft',
318-
}
319-
const operationGroups: OperationGroup[] = genGroupsForEscaping(testVersion)
320-
321-
await tdm.publishVersion(testVersion)
322-
323-
for (const group of operationGroups) {
324-
await tdm.createOperationGroup(group)
325-
326-
await test.step(`"${group.groupName}" group name`, async () => {
327-
328-
await portalPage.gotoVersion(testVersion, VERSION_OVERVIEW_TAB_GROUPS)
329-
330-
await test.step(`Open "Edit Operation Group" dialog for "${group.groupName}"`, async () => {
331-
await groupsTab.getGroupRow(group.groupName).openEditGroupDialog()
332-
})
298+
generateGroupsForEscaping(V_DSH_DMGR_CHAR_ESC_N).forEach((group, index) => {
299+
300+
test(`[P-MGO-2.6.${index}] Check special char escaping in operation group name - "${group.groupName}"`,
301+
{
302+
annotation: [
303+
{ type: 'Test Case', description: `${TICKET_BASE_URL}TestCase-A-8350` },
304+
],
305+
},
306+
async ({ sysadminPage: page, apihubTDM: tdm }, testInfo) => {
307+
const portalPage = new PortalPage(page)
308+
const { versionDashboardPage: versionPage } = portalPage
309+
const { overviewTab } = versionPage
310+
const { groupsTab } = overviewTab
311+
const { editOperationGroupDialog } = groupsTab
312+
const testVersion = V_DSH_DMGR_CHAR_ESC_N
313+
const retryGroupName = `${group.groupName}-${testInfo.retry}`
314+
const testGroup = { ...group, groupName: retryGroupName }
315+
316+
await tdm.createOperationGroup(testGroup)
317+
318+
await portalPage.gotoVersion(testVersion, VERSION_OVERVIEW_TAB_GROUPS)
319+
320+
await test.step(`Open "Edit Operation Group" dialog for "${retryGroupName}"`, async () => {
321+
await groupsTab.getGroupRow(retryGroupName).openEditGroupDialog()
322+
})
333323

334-
await test.step('Add operations', async () => {
335-
await editOperationGroupDialog.leftList.getOperationListItem(group.testMeta!.toAdd![0].operations[0]).checkbox.click()
336-
await editOperationGroupDialog.toRightBtn.click()
324+
await test.step('Add operations', async () => {
325+
await editOperationGroupDialog.leftList.getOperationListItem(group.testMeta!.toAdd![0].operations[0]).checkbox.click()
326+
await editOperationGroupDialog.toRightBtn.click()
337327

338-
await expect.soft(editOperationGroupDialog.rightList.getOperationListItem()).toHaveCount(1)
339-
})
328+
await expect.soft(editOperationGroupDialog.rightList.getOperationListItem()).toHaveCount(1)
329+
})
340330

341-
await test.step(`Save the "${group.groupName}" operation group`, async () => {
342-
await editOperationGroupDialog.saveBtn.click()
331+
await test.step(`Save the "${retryGroupName}" operation group`, async () => {
332+
await editOperationGroupDialog.saveBtn.click()
343333

344-
await expect.soft(editOperationGroupDialog.saveBtn).toBeHidden()
345-
await expect.soft(groupsTab.getGroupRow(group.groupName).operationsNumberCell).toHaveText('1')
346-
})
334+
await expect.soft(editOperationGroupDialog.saveBtn).toBeHidden()
335+
await expect.soft(groupsTab.getGroupRow(retryGroupName).operationsNumberCell).toHaveText('1')
347336
})
348-
}
349-
})
337+
})
338+
})
350339

351340
test('[P-MGO-4.1] Delete a group of operations',
352341
{

src/tests/portal/setup.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,7 @@ import {
209209
V_DSH_DIFF_4444_1_R,
210210
V_DSH_DMGR_BASE_R,
211211
V_DSH_DMGR_CHANGED_R,
212+
V_DSH_DMGR_CHAR_ESC_N,
212213
V_DSH_DMGR_N,
213214
V_DSH_DMGR_PROP_N,
214215
V_P_DSH_CHANGELOG_REST_BASE_R,
@@ -348,6 +349,7 @@ import {
348349
V_PKG_DMGR_USER_CHANGED_R,
349350
V_PKG_PMGR_BASE_R,
350351
V_PKG_PMGR_CHANGED_R,
352+
V_PKG_PMGR_CHAR_ESC_N,
351353
V_PKG_PMGR_DOWNLOAD_PUBLISH_N,
352354
V_PKG_PMGR_N,
353355
V_PKG_PMGR_PROP_N,
@@ -894,10 +896,12 @@ test.describe('Non-Reusable Test Data creation', async () => {
894896
V_P_DSH_CRUD_RELEASE_N,
895897
V_DSH_DMGR_N,
896898
V_DSH_DMGR_PROP_N,
899+
V_DSH_DMGR_CHAR_ESC_N,
897900
V_PKG_PMGR_N,
898901
V_PKG_PMGR_PROP_N,
899902
V_PKG_PMGR_DOWNLOAD_PUBLISH_N,
900903
V_PKG_PPGR_EDIT_N,
904+
V_PKG_PMGR_CHAR_ESC_N,
901905
V_P_PKG_REV_PREV_N,
902906
V_P_PKG_REV_1_N,
903907
V_P_DSH_REV_PREV_N,

0 commit comments

Comments
 (0)