Skip to content

Commit 59b37ed

Browse files
committed
update test to prevent flakiness
1 parent 3ea41db commit 59b37ed

File tree

3 files changed

+26
-17
lines changed

3 files changed

+26
-17
lines changed

e2e/tests/block-editor.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ test.describe( 'Block Editor', () => {
6161

6262
const settings = page.getByLabel( 'Settings', { exact: true } )
6363

64-
if ( ! await settings.getAttribute( 'aria-pressed' ) ) {
64+
if ( await settings.getAttribute( 'aria-pressed' ) === 'false' ) {
6565
await settings.click()
6666
}
6767

e2e/tests/global-settings.spec.ts

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { test, expect } from 'e2e/test-utils'
2-
import { createColor, getRgb } from '~stackable/plugins/global-settings/colors/util'
32

43
test.describe( 'Global Settings', () => {
54
let pid = null
@@ -62,7 +61,15 @@ test.describe( 'Global Settings', () => {
6261

6362
// Delete added Global Color
6463
await page.getByLabel( 'Stackable Settings' ).click()
65-
await panel.locator( `.ugb-global-settings-color-picker__color-indicators > div > div:nth-child(${ count }) > button.stk-global-settings-color-picker__delete-button` ).click()
64+
65+
page.on( 'dialog', async dialog => await dialog.accept() )
66+
const deleteRequest = page.waitForResponse( response => response.url().includes( 'wp/v2/settings' ) && response.request().method() === 'POST' )
67+
68+
await globalColors.getByLabel( 'Delete' ).nth( count - 1 ).click()
69+
70+
await deleteRequest
71+
const _count = ( await globalColors.evaluate( node => Array.from( node.childNodes ) ) ).length
72+
expect( _count ).toBeLessThan( count )
6673
} )
6774

6875
test( 'Global Typography Styles should be applied when adding a heading', async ( {
@@ -93,18 +100,21 @@ test.describe( 'Global Settings', () => {
93100

94101
await expect( editor.canvas.locator( '[data-type="stackable/heading"] > .stk-block-heading > h2[role="textbox"]' ) ).toHaveCSS( 'font-size', '32px' )
95102

96-
// Reset Global Typography Styles
97-
await page.getByLabel( 'Stackable Settings' ).click()
98-
await page.locator( '.ugb-global-settings-typography-control' ).nth( 1 ).getByRole( 'button', { name: 'Reset' } ).click()
103+
// Reset Global Typography Styles
104+
await page.getByLabel( 'Stackable Settings' ).click()
105+
106+
const resetButton = page.locator( '.ugb-global-settings-typography-control' ).nth( 1 ).getByLabel( 'Reset' )
107+
const deleteRequest = page.waitForResponse( response => response.url().includes( 'wp/v2/settings' ) && response.request().method() === 'POST' )
108+
await resetButton.click()
109+
110+
await deleteRequest
111+
await expect( resetButton ).not.toBeVisible()
99112
} )
100113

101114
test( 'When a default block is created, adding the block should have the default block\'s attributes', async ( {
102115
page,
103116
editor,
104117
} ) => {
105-
// Generate a color
106-
const color = createColor()
107-
108118
await page.getByLabel( 'Stackable Settings' ).click()
109119
await page.getByRole( 'button', { name: 'Block Defaults' } ).click()
110120

@@ -116,21 +126,20 @@ test.describe( 'Global Settings', () => {
116126

117127
// Set a color for the default Text Block
118128
await defaultBlockPage.locator( '.stk-color-palette-control .stk-control-content > .components-dropdown > .components-button' ).first().click()
119-
await defaultBlockPage.getByLabel( 'Hex color' ).fill( color.slice( 1 ) )
129+
await defaultBlockPage.getByLabel( 'Hex color' ).fill( 'ff0000' )
120130
await defaultBlockPage.locator( '.stk-color-palette-control .stk-control-content > .components-dropdown > .components-button' ).first().click()
121131

122-
const saveBlock = defaultBlockPage.waitForResponse( response =>
123-
response.url().includes( 'update_block_style' ) && response.request().method() === 'POST' )
124-
125132
// In older WP versions, the button text is 'Update' instead of 'Save'
126133
if ( await defaultBlockPage.getByRole( 'button', { name: 'Save', exact: true } ).isVisible() ) {
127134
await defaultBlockPage.getByRole( 'button', { name: 'Save', exact: true } ).click()
135+
await expect( defaultBlockPage.getByRole( 'button', { name: 'Saving' } ) ).toBeVisible()
136+
await expect( defaultBlockPage.getByRole( 'button', { name: 'Save', exact: true } ) ).toBeVisible()
128137
} else {
129138
await defaultBlockPage.getByRole( 'button', { name: 'Update' } ).click()
139+
await expect( defaultBlockPage.getByRole( 'button', { name: 'Updating' } ) ).toBeVisible()
140+
await expect( defaultBlockPage.getByRole( 'button', { name: 'Update' } ) ).toBeVisible()
130141
}
131142

132-
// Ensure block is saved before closing the Default Block Editor
133-
await saveBlock
134143
await defaultBlockPage.close()
135144

136145
// Insert a Stackable Text Block, and check if the color is the same as the one set in the default block
@@ -142,12 +151,11 @@ test.describe( 'Global Settings', () => {
142151
},
143152
} )
144153

145-
await expect( editor.canvas.locator( '[data-type="stackable/text"] > .stk-block-text > p[role="textbox"]' ) ).toHaveCSS( 'color', `rgb(${ getRgb( color ) })` )
154+
await expect( editor.canvas.locator( '[data-type="stackable/text"] > .stk-block-text > p[role="textbox"]' ) ).toHaveCSS( 'color', 'rgb(255, 0, 0)' )
146155

147156
// Reset Default Block
148157
await page.getByLabel( 'Stackable Settings' ).click()
149158
await page.getByRole( 'button', { name: 'Block Defaults' } ).click()
150159
await page.locator( '.components-panel__body', { hasText: 'Block Defaults' } ).locator( '.stk-block-default-control', { hasText: /^Text$/ } ).first().getByLabel( 'Reset' ).click()
151160
} )
152161
} )
153-

src/components/sortable-picker/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,7 @@ const LabeledItemIndicator = props => {
225225
) }
226226
/>
227227
<Button
228+
aria-label="Delete"
228229
className="stk-global-settings-color-picker__delete-button"
229230
icon="trash"
230231
isSmall

0 commit comments

Comments
 (0)