@@ -7,97 +7,100 @@ import { deleteAllRepos } from './helpers/deleteRepositories';
7
7
const uploadRepoName = 'Upload Repo!' ;
8
8
9
9
test . describe ( 'Upload Repositories' , ( ) => {
10
- test ( 'Clean - Delete any current repos that exist' , async ( { page } ) => {
11
- await deleteAllRepos ( page , `&search=${ uploadRepoName } ` ) ;
12
- } ) ;
13
-
14
- test ( 'Create upload repository' , async ( { page } ) => {
15
- await closePopupsIfExist ( page ) ;
16
- await navigateToRepositories ( page ) ;
17
-
18
- // Click 'Add repositories' button
19
- await page . getByRole ( 'button' , { name : 'Add repositories' } ) . first ( ) . click ( ) ;
20
-
21
- // Wait for the modal to be visible
22
- await expect ( page . locator ( 'div[id^="pf-modal-part"]' ) . first ( ) ) . toBeVisible ( ) ;
23
-
24
- // Fill in the 'Enter name' input
25
- const nameInput = page . getByPlaceholder ( 'Enter name' ) ;
26
- await nameInput . click ( ) ;
27
- await nameInput . fill ( uploadRepoName ) ;
28
-
29
- // Check the 'Upload' checkbox
30
- await page . getByLabel ( 'Upload' , { exact : true } ) . check ( ) ;
10
+ test ( 'Upload repo creation and deletion' , async ( { page } ) => {
11
+ await test . step ( 'Clean - Delete any current repos that exist' , async ( ) => {
12
+ await deleteAllRepos ( page , `&search=${ uploadRepoName } ` ) ;
13
+ } ) ;
31
14
32
- // Filter by architecture
33
- await page . getByRole ( 'button' , { name : 'filter architecture' } ) . click ( ) ;
34
- await page . getByRole ( 'option' , { name : 'x86_64' } ) . click ( ) ;
15
+ await test . step ( 'Create upload repository' , async ( ) => {
16
+ await closePopupsIfExist ( page ) ;
17
+ await navigateToRepositories ( page ) ;
35
18
36
- // Filter by version
37
- const versionFilterButton = page . getByRole ( 'button' , { name : 'filter version' } ) ;
38
- await versionFilterButton . click ( ) ;
39
- await page . getByRole ( 'menuitem' , { name : 'el9' } ) . locator ( 'label' ) . click ( ) ;
40
- await page . getByRole ( 'menuitem' , { name : 'el8' } ) . locator ( 'label' ) . click ( ) ;
41
- await versionFilterButton . click ( ) ; // Close the filter dropdown
19
+ // Click 'Add repositories' button
20
+ await page . getByRole ( 'button' , { name : 'Add repositories' } ) . first ( ) . click ( ) ;
42
21
43
- // Wait for the successful API call
44
- const errorElement = page . locator ( '. pf-v5-c-helper-text__item.pf-m-error' ) ;
22
+ // Wait for the modal to be visible
23
+ await expect ( page . locator ( 'div[id^=" pf-modal-part"]' ) . first ( ) ) . toBeVisible ( ) ;
45
24
46
- if ( await errorElement . isVisible ( ) ) {
47
- throw new Error ( 'Error message in element is visible' ) ;
48
- }
25
+ // Fill in the 'Enter name' input
26
+ const nameInput = page . getByPlaceholder ( 'Enter name' ) ;
27
+ await nameInput . click ( ) ;
28
+ await nameInput . fill ( uploadRepoName ) ;
49
29
50
- // Click 'Save and upload content'
51
- await Promise . all ( [
52
- page . getByRole ( 'button' , { name : 'Save and upload content' } ) . click ( ) ,
53
- page . waitForResponse (
54
- ( resp ) =>
55
- resp . url ( ) . includes ( '/bulk_create/' ) && resp . status ( ) >= 200 && resp . status ( ) < 300 ,
56
- ) ,
57
- ] ) ;
30
+ // Check the 'Upload' checkbox
31
+ await page . getByLabel ( 'Upload' , { exact : true } ) . check ( ) ;
58
32
59
- const dragBoxSelector = page . locator ( '#pf-modal-part-1 > div' ) ;
33
+ // Filter by architecture
34
+ await page . getByRole ( 'button' , { name : 'filter architecture' } ) . click ( ) ;
35
+ await page . getByRole ( 'option' , { name : 'x86_64' } ) . click ( ) ;
60
36
61
- // Handle the file chooser and upload the file
62
- await dragBoxSelector
63
- . locator ( 'input[type=file]' )
64
- . setInputFiles ( path . join ( __dirname , './fixtures/libreOffice.rpm' ) ) ;
37
+ // Filter by version
38
+ const versionFilterButton = page . getByRole ( 'button' , { name : 'filter version' } ) ;
39
+ await versionFilterButton . click ( ) ;
40
+ await page . getByRole ( 'menuitem' , { name : 'el9' } ) . locator ( 'label' ) . click ( ) ;
41
+ await page . getByRole ( 'menuitem' , { name : 'el8' } ) . locator ( 'label' ) . click ( ) ;
42
+ await versionFilterButton . click ( ) ; // Close the filter dropdown
65
43
66
- // Verify the upload completion message
67
- await expect ( page . getByText ( 'All uploads completed!' ) ) . toBeVisible ( ) ;
68
-
69
- // Confirm changes
70
- await page . getByRole ( 'button' , { name : 'Confirm changes' } ) . click ( ) ;
71
-
72
- // There might be many rows at this point, we need to ensure that we filter the repo
73
- const row = await getRowByNameOrUrl ( page , uploadRepoName ) ;
74
- // Verify the 'In progress' status
75
- await expect ( row . getByText ( 'In progress' ) ) . toBeVisible ( ) ;
76
- } ) ;
77
-
78
- test ( 'Delete one upload repository' , async ( { page } ) => {
79
- await navigateToRepositories ( page ) ;
80
- await closePopupsIfExist ( page ) ;
81
- const row = await getRowByNameOrUrl ( page , uploadRepoName ) ;
82
- // Check if the 'Kebab toggle' button is disabled
83
- await row . getByLabel ( 'Kebab toggle' ) . click ( ) ;
84
- await row . getByRole ( 'menuitem' , { name : 'Delete' } ) . click ( ) ;
85
-
86
- // Click on the 'Remove' button
87
- await Promise . all ( [
88
- // Verify the 'Remove repositories?' dialog is visible
89
- expect ( page . getByText ( 'Remove repositories?' ) ) . toBeVisible ( ) ,
90
44
// Wait for the successful API call
91
- page . waitForResponse (
92
- ( resp ) => resp . url ( ) . includes ( 'bulk_delete' ) && resp . status ( ) >= 200 && resp . status ( ) < 300 ,
93
- ) ,
94
- // Click the 'Remove' button
95
- page . getByRole ( 'button' , { name : 'Remove' } ) . click ( ) ,
96
- await expect ( row ) . not . toBeVisible ( ) ,
97
- ] ) ;
98
- } ) ;
99
-
100
- test ( 'Clean - Double check upload repo for deletion' , async ( { page } ) => {
101
- await deleteAllRepos ( page , `&search=${ uploadRepoName } ` ) ;
45
+ const errorElement = page . locator ( '.pf-v5-c-helper-text__item.pf-m-error' ) ;
46
+
47
+ if ( await errorElement . isVisible ( ) ) {
48
+ throw new Error ( 'Error message in element is visible' ) ;
49
+ }
50
+
51
+ // Click 'Save and upload content'
52
+ await Promise . all ( [
53
+ page . getByRole ( 'button' , { name : 'Save and upload content' } ) . click ( ) ,
54
+ page . waitForResponse (
55
+ ( resp ) =>
56
+ resp . url ( ) . includes ( '/bulk_create/' ) && resp . status ( ) >= 200 && resp . status ( ) < 300 ,
57
+ ) ,
58
+ ] ) ;
59
+
60
+ const dragBoxSelector = page . locator ( '#pf-modal-part-1 > div' ) ;
61
+
62
+ // Handle the file chooser and upload the file
63
+ await dragBoxSelector
64
+ . locator ( 'input[type=file]' )
65
+ . setInputFiles ( path . join ( __dirname , './fixtures/libreOffice.rpm' ) ) ;
66
+
67
+ // Verify the upload completion message
68
+ await expect ( page . getByText ( 'All uploads completed!' ) ) . toBeVisible ( ) ;
69
+
70
+ // Confirm changes
71
+ await page . getByRole ( 'button' , { name : 'Confirm changes' } ) . click ( ) ;
72
+
73
+ // There might be many rows at this point, we need to ensure that we filter the repo
74
+ const row = await getRowByNameOrUrl ( page , uploadRepoName ) ;
75
+ // Verify the 'In progress' status
76
+ await expect ( row . getByText ( 'In progress' ) ) . toBeVisible ( ) ;
77
+ } ) ;
78
+
79
+ await test . step ( 'Delete one upload repository' , async ( ) => {
80
+ await navigateToRepositories ( page ) ;
81
+ await closePopupsIfExist ( page ) ;
82
+ const row = await getRowByNameOrUrl ( page , uploadRepoName ) ;
83
+ // Check if the 'Kebab toggle' button is disabled
84
+ await row . getByLabel ( 'Kebab toggle' ) . click ( ) ;
85
+ await row . getByRole ( 'menuitem' , { name : 'Delete' } ) . click ( ) ;
86
+
87
+ // Click on the 'Remove' button
88
+ await Promise . all ( [
89
+ // Verify the 'Remove repositories?' dialog is visible
90
+ expect ( page . getByText ( 'Remove repositories?' ) ) . toBeVisible ( ) ,
91
+ // Wait for the successful API call
92
+ page . waitForResponse (
93
+ ( resp ) =>
94
+ resp . url ( ) . includes ( 'bulk_delete' ) && resp . status ( ) >= 200 && resp . status ( ) < 300 ,
95
+ ) ,
96
+ // Click the 'Remove' button
97
+ page . getByRole ( 'button' , { name : 'Remove' } ) . click ( ) ,
98
+ await expect ( row ) . not . toBeVisible ( ) ,
99
+ ] ) ;
100
+ } ) ;
101
+
102
+ await test . step ( 'Clean - Double check upload repo for deletion' , async ( ) => {
103
+ await deleteAllRepos ( page , `&search=${ uploadRepoName } ` ) ;
104
+ } ) ;
102
105
} ) ;
103
106
} ) ;
0 commit comments