Skip to content

Commit 2293097

Browse files
authored
test!: enable field validation tests for the Copy Version dialog (#29)
* test!: enable field validation tests for the Copy Version dialog BREAKING CHANGE: These changes include validation for a UI bug that is currently present in the develop branch. The tests will fail until the bug is fixed in the UI component. The bug affects the autocomplete field validation behavior in the Copy Version dialog. * test: update tests to handle dynamic retry-based versions. * test: add checks to ensure fields are enabled/disabled correctly for the Copy Version dialog
1 parent 5f64986 commit 2293097

File tree

2 files changed

+90
-40
lines changed

2 files changed

+90
-40
lines changed

src/tests/portal/14-copying/14.1-copying-package-version.spec.ts

Lines changed: 45 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,15 @@ test.describe('14.1 Copying Package Version', () => {
1010

1111
const sourceVersion = V_P_PKG_COPYING_SOURCE_R
1212

13-
test.skip('[P-CPAP-1.1] Copy Version dialog field validation logic',
13+
test('[P-CPAP-1.1] Copy Version dialog field validation logic',
1414
{
1515
tag: '@smoke',
1616
annotation: [
1717
{
1818
type: 'Description',
19-
description: 'Verifies the behavior of fields in the Copy Version dialog. The test checks pre-populated fields in the dialog, field clearing behavior, package field disabling when workspace is cleared, and ensures cleared target version fields are not auto-populated when workspace/package is selected.',
19+
description: 'Verifies the behavior of fields in the Copy Version dialog. The test checks pre-populated fields in the dialog, field clearing behavior, validation of disabled fields, and ensures cleared target version fields are not auto-populated when workspace/package is selected.',
2020
},
2121
{ type: 'Test Case', description: `${TICKET_BASE_URL}TestCase-A-9363` },
22-
{ type: 'Issue', description: `${TICKET_BASE_URL}TestCase-B-1403` },
2322
],
2423
},
2524
async ({ sysadminPage: page }) => {
@@ -37,20 +36,25 @@ test.describe('14.1 Copying Package Version', () => {
3736
await expect(copyVersionDialog.workspaceAc).toHaveValue(targetWorkspace.name)
3837
await expect(copyVersionDialog.packageAc).toBeEnabled()
3938
await expect(copyVersionDialog.packageAc).toBeEmpty()
39+
await expect(copyVersionDialog.versionAc).toBeDisabled()
4040
await expect(copyVersionDialog.versionAc).toHaveValue(sourceVersion.version)
41+
await expect(copyVersionDialog.statusAc).toBeDisabled()
4142
await expect(copyVersionDialog.statusAc).toHaveValue(sourceVersion.status)
43+
await expect(copyVersionDialog.labelsAc).toBeDisabled()
4244
for (const label of sourceVersion.metadata!.versionLabels!) {
4345
await expect(copyVersionDialog.labelsAc.getChip(label)).toBeVisible()
4446
}
47+
await expect(copyVersionDialog.previousVersionAc).toBeDisabled()
4548
})
4649

47-
await test.step('Clear fields', async () => {
50+
await test.step('Clear Workspace field', async () => {
4851
await copyVersionDialog.workspaceAc.clear()
49-
await copyVersionDialog.versionAc.clear()
50-
await copyVersionDialog.labelsAc.hover()
51-
await copyVersionDialog.labelsAc.clearBtn.click()
5252

5353
await expect(copyVersionDialog.packageAc).toBeDisabled()
54+
await expect(copyVersionDialog.versionAc).toBeDisabled()
55+
await expect(copyVersionDialog.statusAc).toBeDisabled()
56+
await expect(copyVersionDialog.labelsAc).toBeDisabled()
57+
await expect(copyVersionDialog.previousVersionAc).toBeDisabled()
5458
})
5559

5660
await test.step('Set target Workspace', async () => {
@@ -61,9 +65,10 @@ test.describe('14.1 Copying Package Version', () => {
6165
await expect(copyVersionDialog.workspaceAc).toHaveValue(targetWorkspace.name)
6266
await expect(copyVersionDialog.packageAc).toBeEnabled()
6367
await expect(copyVersionDialog.packageAc).toBeEmpty()
64-
await expect(copyVersionDialog.versionAc).toBeEmpty()
65-
await expect(copyVersionDialog.statusAc).toHaveValue(sourceVersion.status)
66-
await expect(copyVersionDialog.labelsAc.getChip()).toHaveCount(0)
68+
await expect(copyVersionDialog.versionAc).toBeDisabled()
69+
await expect(copyVersionDialog.statusAc).toBeDisabled()
70+
await expect(copyVersionDialog.labelsAc).toBeDisabled()
71+
await expect(copyVersionDialog.previousVersionAc).toBeDisabled()
6772
})
6873

6974
await test.step('Set target Package', async () => {
@@ -72,6 +77,22 @@ test.describe('14.1 Copying Package Version', () => {
7277
})
7378

7479
await expect(copyVersionDialog.packageAc).toHaveValue(targetPackage.name)
80+
await expect(copyVersionDialog.versionAc).toBeEnabled()
81+
await expect(copyVersionDialog.versionAc).toHaveValue(sourceVersion.version)
82+
await expect(copyVersionDialog.statusAc).toBeEnabled()
83+
await expect(copyVersionDialog.statusAc).toHaveValue(sourceVersion.status)
84+
await expect(copyVersionDialog.labelsAc).toBeEnabled()
85+
for (const label of sourceVersion.metadata!.versionLabels!) {
86+
await expect(copyVersionDialog.labelsAc.getChip(label)).toBeVisible()
87+
}
88+
await expect(copyVersionDialog.previousVersionAc).toBeEnabled()
89+
})
90+
91+
await test.step('Clear fields', async () => {
92+
await copyVersionDialog.versionAc.clear()
93+
await copyVersionDialog.labelsAc.hover()
94+
await copyVersionDialog.labelsAc.clearBtn.click()
95+
7596
await expect(copyVersionDialog.versionAc).toBeEmpty()
7697
await expect(copyVersionDialog.statusAc).toHaveValue(sourceVersion.status)
7798
await expect(copyVersionDialog.labelsAc.getChip()).toHaveCount(0)
@@ -107,13 +128,15 @@ test.describe('14.1 Copying Package Version', () => {
107128
{ type: 'Test Case', description: `${TICKET_BASE_URL}TestCase-A-9365` },
108129
],
109130
},
110-
async ({ sysadminPage: page }) => {
131+
async ({ sysadminPage: page }, testInfo) => {
111132

133+
const { retry = 0 } = testInfo
112134
const portalPage = new PortalPage(page)
113135
const { versionPackagePage: versionPage } = portalPage
114136
const { overviewTab, operationsTab, deprecatedTab, documentsTab, copyVersionDialog } = versionPage
115137
const targetWorkspace = P_WS_MAIN_R
116138
const targetPackage = P_PK_CP_EMPTY
139+
const targetVersion = `20${retry}0.2`
117140

118141
await test.step('Open Copy Version dialog', async () => {
119142
await portalPage.gotoVersion(sourceVersion)
@@ -132,7 +155,7 @@ test.describe('14.1 Copying Package Version', () => {
132155

133156
await test.step('Set target Version Info and copy Version', async () => {
134157
await copyVersionDialog.fillForm({
135-
version: '2000.2',
158+
version: targetVersion,
136159
status: DRAFT_VERSION_STATUS,
137160
labels: ['label-1', 'label-2'],
138161
previousVersion: NO_PREV_RELEASE_VERSION,
@@ -148,8 +171,8 @@ test.describe('14.1 Copying Package Version', () => {
148171

149172
await expect(overviewTab.summaryTab.body.labels).toContainText('label-1')
150173
await expect(overviewTab.summaryTab.body.labels).toContainText('label-2')
151-
await expect(overviewTab.summaryTab.body.summary.currentVersion).toHaveText('2000.2')
152-
await expect(overviewTab.summaryTab.body.summary.revision).not.toBeEmpty() //not a specific number because it changes every retry
174+
await expect(overviewTab.summaryTab.body.summary.currentVersion).toHaveText(targetVersion)
175+
await expect(overviewTab.summaryTab.body.summary.revision).toHaveText('1')
153176
await expect(overviewTab.summaryTab.body.summary.previousVersion).toHaveText('-')
154177
await expect(overviewTab.summaryTab.body.summary.publishedBy).toHaveText(SYSADMIN.name)
155178
await expect(overviewTab.summaryTab.body.summary.publicationDate).not.toBeEmpty()
@@ -185,7 +208,7 @@ test.describe('14.1 Copying Package Version', () => {
185208
await versionPage.toolbar.versionSlt.click()
186209
await versionPage.toolbar.versionSlt.draftBtn.click()
187210

188-
await expect(versionPage.toolbar.versionSlt.getVersionRow()).toHaveCount(1)
211+
await expect(versionPage.toolbar.versionSlt.getVersionRow(targetVersion)).toBeVisible()
189212
})
190213
})
191214

@@ -201,13 +224,15 @@ test.describe('14.1 Copying Package Version', () => {
201224
{ type: 'Test Case', description: `${TICKET_BASE_URL}TestCase-A-9371` },
202225
],
203226
},
204-
async ({ sysadminPage: page }) => {
227+
async ({ sysadminPage: page }, testInfo) => {
205228

229+
const { retry = 0 } = testInfo
206230
const portalPage = new PortalPage(page)
207231
const { versionPackagePage: versionPage } = portalPage
208232
const { overviewTab, operationsTab, apiChangesTab, deprecatedTab, documentsTab, copyVersionDialog } = versionPage
209233
const targetWorkspace = P_WS_MAIN_R
210234
const targetPackage = P_PK_CP_RELEASE
235+
const targetVersion = `20${retry}0.2`
211236

212237
await test.step('Open Copy Version dialog', async () => {
213238
await portalPage.gotoVersion(sourceVersion)
@@ -227,7 +252,7 @@ test.describe('14.1 Copying Package Version', () => {
227252

228253
await test.step('Set target Version Info and copy Version', async () => {
229254
await copyVersionDialog.fillForm({
230-
version: '2000.2',
255+
version: targetVersion,
231256
status: RELEASE_VERSION_STATUS,
232257
labels: ['label-1', 'label-2'],
233258
previousVersion: V_P_PKG_COPYING_RELEASE_N.version,
@@ -243,8 +268,8 @@ test.describe('14.1 Copying Package Version', () => {
243268

244269
await expect(overviewTab.summaryTab.body.labels).toContainText('label-1')
245270
await expect(overviewTab.summaryTab.body.labels).toContainText('label-2')
246-
await expect(overviewTab.summaryTab.body.summary.currentVersion).toHaveText('2000.2')
247-
await expect(overviewTab.summaryTab.body.summary.revision).not.toBeEmpty() //not a specific number because it changes every retry
271+
await expect(overviewTab.summaryTab.body.summary.currentVersion).toHaveText(targetVersion)
272+
await expect(overviewTab.summaryTab.body.summary.revision).toHaveText('1')
248273
await expect(overviewTab.summaryTab.body.summary.previousVersion).toHaveText(V_P_PKG_COPYING_RELEASE_N.version)
249274
await expect(overviewTab.summaryTab.body.summary.publishedBy).toHaveText(SYSADMIN.name)
250275
await expect(overviewTab.summaryTab.body.summary.publicationDate).not.toBeEmpty()
@@ -279,7 +304,7 @@ test.describe('14.1 Copying Package Version', () => {
279304
await test.step('Open the Version selector', async () => {
280305
await versionPage.toolbar.versionSlt.click()
281306

282-
await expect(versionPage.toolbar.versionSlt.getVersionRow()).toHaveCount(2)
307+
await expect(versionPage.toolbar.versionSlt.getVersionRow(targetVersion)).toBeVisible()
283308
})
284309
})
285310

src/tests/portal/14-copying/14.2-copying-dashboard-version.spec.ts

Lines changed: 45 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,15 @@ test.describe('14.2 Copying Dashboard Version', () => {
2121

2222
const sourceVersion = V_P_DSH_COPYING_SOURCE_R
2323

24-
test.skip('[P-CDAD-1.1] Copy Version dialog field validation logic',
24+
test('[P-CDAD-1.1] Copy Version dialog field validation logic',
2525
{
2626
tag: '@smoke',
2727
annotation: [
2828
{
2929
type: 'Description',
30-
description: 'Verifies the behavior of fields in the Copy Version dialog. The test checks pre-populated fields in the dialog, field clearing behavior, dashboard field disabling when workspace is cleared, and ensures cleared target version fields are not auto-populated when workspace/dashboard is selected.',
30+
description: 'Verifies the behavior of fields in the Copy Version dialog. The test checks pre-populated fields in the dialog, field clearing behavior, validation of disabled fields, and ensures cleared target version fields are not auto-populated when workspace/dashboard is selected.',
3131
},
3232
{ type: 'Test Case', description: `${TICKET_BASE_URL}TestCase-A-9380` },
33-
{ type: 'Issue', description: `${TICKET_BASE_URL}TestCase-B-1403` },
3433
],
3534
},
3635
async ({ sysadminPage: page }) => {
@@ -48,20 +47,25 @@ test.describe('14.2 Copying Dashboard Version', () => {
4847
await expect(copyVersionDialog.workspaceAc).toHaveValue(targetWorkspace.name)
4948
await expect(copyVersionDialog.packageAc).toBeEnabled()
5049
await expect(copyVersionDialog.packageAc).toBeEmpty()
50+
await expect(copyVersionDialog.versionAc).toBeDisabled()
5151
await expect(copyVersionDialog.versionAc).toHaveValue(sourceVersion.version)
52+
await expect(copyVersionDialog.statusAc).toBeDisabled()
5253
await expect(copyVersionDialog.statusAc).toHaveValue(sourceVersion.status)
54+
await expect(copyVersionDialog.labelsAc).toBeDisabled()
5355
for (const label of sourceVersion.metadata!.versionLabels!) {
5456
await expect(copyVersionDialog.labelsAc.getChip(label)).toBeVisible()
5557
}
58+
await expect(copyVersionDialog.previousVersionAc).toBeDisabled()
5659
})
5760

58-
await test.step('Clear fields', async () => {
61+
await test.step('Clear Workspace field', async () => {
5962
await copyVersionDialog.workspaceAc.clear()
60-
await copyVersionDialog.versionAc.clear()
61-
await copyVersionDialog.labelsAc.hover()
62-
await copyVersionDialog.labelsAc.clearBtn.click()
6363

6464
await expect(copyVersionDialog.packageAc).toBeDisabled()
65+
await expect(copyVersionDialog.versionAc).toBeDisabled()
66+
await expect(copyVersionDialog.statusAc).toBeDisabled()
67+
await expect(copyVersionDialog.labelsAc).toBeDisabled()
68+
await expect(copyVersionDialog.previousVersionAc).toBeDisabled()
6569
})
6670

6771
await test.step('Set target Workspace', async () => {
@@ -72,9 +76,10 @@ test.describe('14.2 Copying Dashboard Version', () => {
7276
await expect(copyVersionDialog.workspaceAc).toHaveValue(targetWorkspace.name)
7377
await expect(copyVersionDialog.packageAc).toBeEnabled()
7478
await expect(copyVersionDialog.packageAc).toBeEmpty()
75-
await expect(copyVersionDialog.versionAc).toBeEmpty()
76-
await expect(copyVersionDialog.statusAc).toHaveValue(sourceVersion.status)
77-
await expect(copyVersionDialog.labelsAc.getChip()).toHaveCount(0)
79+
await expect(copyVersionDialog.versionAc).toBeDisabled()
80+
await expect(copyVersionDialog.statusAc).toBeDisabled()
81+
await expect(copyVersionDialog.labelsAc).toBeDisabled()
82+
await expect(copyVersionDialog.previousVersionAc).toBeDisabled()
7883
})
7984

8085
await test.step('Set target Dashboard', async () => {
@@ -83,6 +88,22 @@ test.describe('14.2 Copying Dashboard Version', () => {
8388
})
8489

8590
await expect(copyVersionDialog.packageAc).toHaveValue(targetDashboard.name)
91+
await expect(copyVersionDialog.versionAc).toBeEnabled()
92+
await expect(copyVersionDialog.versionAc).toHaveValue(sourceVersion.version)
93+
await expect(copyVersionDialog.statusAc).toBeEnabled()
94+
await expect(copyVersionDialog.statusAc).toHaveValue(sourceVersion.status)
95+
await expect(copyVersionDialog.labelsAc).toBeEnabled()
96+
for (const label of sourceVersion.metadata!.versionLabels!) {
97+
await expect(copyVersionDialog.labelsAc.getChip(label)).toBeVisible()
98+
}
99+
await expect(copyVersionDialog.previousVersionAc).toBeEnabled()
100+
})
101+
102+
await test.step('Clear fields', async () => {
103+
await copyVersionDialog.versionAc.clear()
104+
await copyVersionDialog.labelsAc.hover()
105+
await copyVersionDialog.labelsAc.clearBtn.click()
106+
86107
await expect(copyVersionDialog.versionAc).toBeEmpty()
87108
await expect(copyVersionDialog.statusAc).toHaveValue(sourceVersion.status)
88109
await expect(copyVersionDialog.labelsAc.getChip()).toHaveCount(0)
@@ -118,13 +139,15 @@ test.describe('14.2 Copying Dashboard Version', () => {
118139
{ type: 'Test Case', description: `${TICKET_BASE_URL}TestCase-A-9381` },
119140
],
120141
},
121-
async ({ sysadminPage: page }) => {
142+
async ({ sysadminPage: page }, testInfo) => {
122143

144+
const { retry = 0 } = testInfo
123145
const portalPage = new PortalPage(page)
124146
const { versionDashboardPage: versionPage } = portalPage
125147
const { overviewTab, operationsTab, deprecatedTab, documentsTab, copyVersionDialog } = versionPage
126148
const targetWorkspace = P_WS_MAIN_R
127149
const targetDashboard = P_DSH_CP_EMPTY
150+
const targetVersion = `20${retry}0.2`
128151

129152
await test.step('Open Copy Version dialog', async () => {
130153
await portalPage.gotoVersion(sourceVersion)
@@ -143,7 +166,7 @@ test.describe('14.2 Copying Dashboard Version', () => {
143166

144167
await test.step('Set target Version Info and copy Version', async () => {
145168
await copyVersionDialog.fillForm({
146-
version: '2000.2',
169+
version: targetVersion,
147170
status: DRAFT_VERSION_STATUS,
148171
labels: ['label-1', 'label-2'],
149172
previousVersion: NO_PREV_RELEASE_VERSION,
@@ -159,8 +182,8 @@ test.describe('14.2 Copying Dashboard Version', () => {
159182

160183
await expect(overviewTab.summaryTab.body.labels).toContainText('label-1')
161184
await expect(overviewTab.summaryTab.body.labels).toContainText('label-2')
162-
await expect(overviewTab.summaryTab.body.summary.currentVersion).toHaveText('2000.2')
163-
await expect(overviewTab.summaryTab.body.summary.revision).not.toBeEmpty() //not a specific number because it changes every retry
185+
await expect(overviewTab.summaryTab.body.summary.currentVersion).toHaveText(targetVersion)
186+
await expect(overviewTab.summaryTab.body.summary.revision).toHaveText('1')
164187
await expect(overviewTab.summaryTab.body.summary.previousVersion).toHaveText('-')
165188
await expect(overviewTab.summaryTab.body.summary.publishedBy).toHaveText(SYSADMIN.name)
166189
await expect(overviewTab.summaryTab.body.summary.publicationDate).not.toBeEmpty()
@@ -212,7 +235,7 @@ test.describe('14.2 Copying Dashboard Version', () => {
212235
await versionPage.toolbar.versionSlt.click()
213236
await versionPage.toolbar.versionSlt.draftBtn.click()
214237

215-
await expect(versionPage.toolbar.versionSlt.getVersionRow()).toHaveCount(1)
238+
await expect(versionPage.toolbar.versionSlt.getVersionRow(targetVersion)).toBeVisible()
216239
})
217240
})
218241

@@ -228,13 +251,15 @@ test.describe('14.2 Copying Dashboard Version', () => {
228251
{ type: 'Test Case', description: `${TICKET_BASE_URL}TestCase-A-9384` },
229252
],
230253
},
231-
async ({ sysadminPage: page }) => {
254+
async ({ sysadminPage: page }, testInfo) => {
232255

256+
const { retry = 0 } = testInfo
233257
const portalPage = new PortalPage(page)
234258
const { versionDashboardPage: versionPage } = portalPage
235259
const { overviewTab, operationsTab, apiChangesTab, deprecatedTab, documentsTab, copyVersionDialog } = versionPage
236260
const targetWorkspace = P_WS_MAIN_R
237261
const targetDashboard = P_DSH_CP_RELEASE
262+
const targetVersion = `20${retry}0.2`
238263

239264
await test.step('Open Copy Version dialog', async () => {
240265
await portalPage.gotoVersion(sourceVersion)
@@ -254,7 +279,7 @@ test.describe('14.2 Copying Dashboard Version', () => {
254279

255280
await test.step('Set target Version Info and copy Version', async () => {
256281
await copyVersionDialog.fillForm({
257-
version: '2000.2',
282+
version: targetVersion,
258283
status: RELEASE_VERSION_STATUS,
259284
labels: ['label-1', 'label-2'],
260285
previousVersion: V_P_DSH_COPYING_RELEASE_N.version,
@@ -270,8 +295,8 @@ test.describe('14.2 Copying Dashboard Version', () => {
270295

271296
await expect(overviewTab.summaryTab.body.labels).toContainText('label-1')
272297
await expect(overviewTab.summaryTab.body.labels).toContainText('label-2')
273-
await expect(overviewTab.summaryTab.body.summary.currentVersion).toHaveText('2000.2')
274-
await expect(overviewTab.summaryTab.body.summary.revision).not.toBeEmpty() //not a specific number because it changes every retry
298+
await expect(overviewTab.summaryTab.body.summary.currentVersion).toHaveText(targetVersion)
299+
await expect(overviewTab.summaryTab.body.summary.revision).toHaveText('1')
275300
await expect(overviewTab.summaryTab.body.summary.previousVersion).toHaveText(V_P_DSH_COPYING_RELEASE_N.version)
276301
await expect(overviewTab.summaryTab.body.summary.publishedBy).toHaveText(SYSADMIN.name)
277302
await expect(overviewTab.summaryTab.body.summary.publicationDate).not.toBeEmpty()
@@ -326,7 +351,7 @@ test.describe('14.2 Copying Dashboard Version', () => {
326351
await test.step('Open the Version selector', async () => {
327352
await versionPage.toolbar.versionSlt.click()
328353

329-
await expect(versionPage.toolbar.versionSlt.getVersionRow()).toHaveCount(2)
354+
await expect(versionPage.toolbar.versionSlt.getVersionRow(targetVersion)).toBeVisible()
330355
})
331356
})
332357

0 commit comments

Comments
 (0)