Skip to content

Commit ab09f2a

Browse files
authored
fix(ui): tabs preferences not being saved (#7761)
1 parent 2f38290 commit ab09f2a

File tree

2 files changed

+32
-3
lines changed

2 files changed

+32
-3
lines changed

packages/ui/src/providers/DocumentInfo/index.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -558,6 +558,7 @@ const DocumentInfo: React.FC<
558558
isInitializing,
559559
isLoading,
560560
onSave,
561+
preferencesKey,
561562
publishedDoc,
562563
setDocFieldPreferences,
563564
setDocumentTitle,

test/fields/e2e.spec.ts

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import {
2020
blockFieldsSlug,
2121
collapsibleFieldsSlug,
2222
tabsFields2Slug,
23+
tabsFieldsSlug,
2324
} from './slugs.js'
2425
const filename = fileURLToPath(import.meta.url)
2526
const dirname = path.dirname(filename)
@@ -479,13 +480,18 @@ describe('fields', () => {
479480
})
480481

481482
describe('tabs', () => {
482-
let url: AdminUrlUtil
483+
// tabsFieldsSlug is used for testing tabs
484+
let tabsFieldsUrl: AdminUrlUtil
485+
// tabsFields2Slug is used for testing nested tabs
486+
let tabsFieldsUrl2: AdminUrlUtil
487+
483488
beforeAll(() => {
484-
url = new AdminUrlUtil(serverURL, tabsFields2Slug)
489+
tabsFieldsUrl = new AdminUrlUtil(serverURL, tabsFieldsSlug)
490+
tabsFieldsUrl2 = new AdminUrlUtil(serverURL, tabsFields2Slug)
485491
})
486492

487493
test('should correctly save nested unnamed and named tabs', async () => {
488-
await page.goto(url.create)
494+
await page.goto(tabsFieldsUrl2.create)
489495

490496
await page.locator('#field-tabsInArray .array-field__add-row').click()
491497
await page.locator('#field-tabsInArray__0__text').fill('tab 1 text')
@@ -498,5 +504,27 @@ describe('fields', () => {
498504
await page.locator('.tabs-field__tabs button:nth-child(2)').click()
499505
await expect(page.locator('#field-tabsInArray__0__tab2__text2')).toHaveValue('tab 2 text')
500506
})
507+
508+
test('should save preferences for tab order', async () => {
509+
await page.goto(tabsFieldsUrl.list)
510+
511+
const firstItem = page.locator('.cell-id a').nth(0)
512+
const href = await firstItem.getAttribute('href')
513+
await firstItem.click()
514+
515+
const regex = new RegExp(href.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'))
516+
517+
await page.waitForURL(regex)
518+
519+
await page.locator('.tabs-field__tabs button:nth-child(2)').nth(0).click()
520+
521+
await page.reload()
522+
523+
const tab2 = page.locator('.tabs-field__tabs button:nth-child(2)').nth(0)
524+
525+
await expect(async () => await expect(tab2).toHaveClass(/--active/)).toPass({
526+
timeout: POLL_TOPASS_TIMEOUT,
527+
})
528+
})
501529
})
502530
})

0 commit comments

Comments
 (0)