Merge branch 'main' into HEAD
This commit is contained in:
@@ -360,6 +360,65 @@ describe('Document View', () => {
|
||||
|
||||
await expect.poll(() => drawer2Left > drawerLeft).toBe(true)
|
||||
})
|
||||
|
||||
test('document drawer displays a link to document', async () => {
|
||||
await navigateToDoc(page, postsUrl)
|
||||
|
||||
// change the relationship to a document which is a different one than the current one
|
||||
await page.locator('#field-relationship').click()
|
||||
await page.locator('#field-relationship .rs__option').nth(2).click()
|
||||
await saveDocAndAssert(page)
|
||||
|
||||
// open relationship drawer
|
||||
await page
|
||||
.locator('.field-type.relationship .relationship--single-value__drawer-toggler')
|
||||
.click()
|
||||
|
||||
const drawer1Content = page.locator('[id^=doc-drawer_posts_1_] .drawer__content')
|
||||
await expect(drawer1Content).toBeVisible()
|
||||
|
||||
// modify the title to trigger the leave page modal
|
||||
await page.locator('.drawer__content #field-title').fill('New Title')
|
||||
|
||||
// Open link in a new tab by holding down the Meta or Control key
|
||||
const documentLink = page.locator('.id-label a')
|
||||
const documentId = String(await documentLink.textContent())
|
||||
await documentLink.click()
|
||||
|
||||
const leavePageModal = page.locator('#leave-without-saving #confirm-action').last()
|
||||
await expect(leavePageModal).toBeVisible()
|
||||
|
||||
await leavePageModal.click()
|
||||
await page.waitForURL(postsUrl.edit(documentId))
|
||||
})
|
||||
|
||||
test('document can be opened in a new tab from within the drawer', async () => {
|
||||
await navigateToDoc(page, postsUrl)
|
||||
await page
|
||||
.locator('.field-type.relationship .relationship--single-value__drawer-toggler')
|
||||
.click()
|
||||
await wait(500)
|
||||
const drawer1Content = page.locator('[id^=doc-drawer_posts_1_] .drawer__content')
|
||||
await expect(drawer1Content).toBeVisible()
|
||||
|
||||
const currentUrl = page.url()
|
||||
|
||||
// Open link in a new tab by holding down the Meta or Control key
|
||||
const documentLink = page.locator('.id-label a')
|
||||
const documentId = String(await documentLink.textContent())
|
||||
const [newPage] = await Promise.all([
|
||||
page.context().waitForEvent('page'),
|
||||
documentLink.click({ modifiers: ['ControlOrMeta'] }),
|
||||
])
|
||||
|
||||
// Wait for navigation to complete in the new tab and ensure correct URL
|
||||
await expect(newPage.locator('.doc-header')).toBeVisible()
|
||||
// using contain here, because after load the lists view will add query params like "?limit=10"
|
||||
expect(newPage.url()).toContain(postsUrl.edit(documentId))
|
||||
|
||||
// Ensure the original page did not change
|
||||
expect(page.url()).toBe(currentUrl)
|
||||
})
|
||||
})
|
||||
|
||||
describe('descriptions', () => {
|
||||
|
||||
@@ -393,6 +393,24 @@ describe('List View', () => {
|
||||
await expect(page.locator(tableRowLocator)).toHaveCount(2)
|
||||
})
|
||||
|
||||
test('should search for nested fields in field dropdown', async () => {
|
||||
await page.goto(postsUrl.list)
|
||||
|
||||
await openListFilters(page, {})
|
||||
|
||||
const whereBuilder = page.locator('.where-builder')
|
||||
await whereBuilder.locator('.where-builder__add-first-filter').click()
|
||||
const conditionField = whereBuilder.locator('.condition__field')
|
||||
await conditionField.click()
|
||||
await conditionField.locator('input.rs__input').fill('Tab 1 > Title')
|
||||
|
||||
await expect(
|
||||
conditionField.locator('.rs__menu-list').locator('div', {
|
||||
hasText: exactText('Tab 1 > Title'),
|
||||
}),
|
||||
).toBeVisible()
|
||||
})
|
||||
|
||||
test('should allow to filter in array field', async () => {
|
||||
await createArray()
|
||||
|
||||
|
||||
@@ -88,6 +88,7 @@ export interface Config {
|
||||
'base-list-filters': BaseListFilter;
|
||||
with300documents: With300Document;
|
||||
'with-list-drawer': WithListDrawer;
|
||||
placeholder: Placeholder;
|
||||
'payload-locked-documents': PayloadLockedDocument;
|
||||
'payload-preferences': PayloadPreference;
|
||||
'payload-migrations': PayloadMigration;
|
||||
@@ -115,6 +116,7 @@ export interface Config {
|
||||
'base-list-filters': BaseListFiltersSelect<false> | BaseListFiltersSelect<true>;
|
||||
with300documents: With300DocumentsSelect<false> | With300DocumentsSelect<true>;
|
||||
'with-list-drawer': WithListDrawerSelect<false> | WithListDrawerSelect<true>;
|
||||
placeholder: PlaceholderSelect<false> | PlaceholderSelect<true>;
|
||||
'payload-locked-documents': PayloadLockedDocumentsSelect<false> | PayloadLockedDocumentsSelect<true>;
|
||||
'payload-preferences': PayloadPreferencesSelect<false> | PayloadPreferencesSelect<true>;
|
||||
'payload-migrations': PayloadMigrationsSelect<false> | PayloadMigrationsSelect<true>;
|
||||
@@ -484,6 +486,19 @@ export interface WithListDrawer {
|
||||
updatedAt: string;
|
||||
createdAt: string;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "placeholder".
|
||||
*/
|
||||
export interface Placeholder {
|
||||
id: string;
|
||||
defaultSelect?: 'option1' | null;
|
||||
placeholderSelect?: 'option1' | null;
|
||||
defaultRelationship?: (string | null) | Post;
|
||||
placeholderRelationship?: (string | null) | Post;
|
||||
updatedAt: string;
|
||||
createdAt: string;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "payload-locked-documents".
|
||||
@@ -574,6 +589,10 @@ export interface PayloadLockedDocument {
|
||||
| ({
|
||||
relationTo: 'with-list-drawer';
|
||||
value: string | WithListDrawer;
|
||||
} | null)
|
||||
| ({
|
||||
relationTo: 'placeholder';
|
||||
value: string | Placeholder;
|
||||
} | null);
|
||||
globalSlug?: string | null;
|
||||
user: {
|
||||
@@ -901,6 +920,18 @@ export interface WithListDrawerSelect<T extends boolean = true> {
|
||||
updatedAt?: T;
|
||||
createdAt?: T;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "placeholder_select".
|
||||
*/
|
||||
export interface PlaceholderSelect<T extends boolean = true> {
|
||||
defaultSelect?: T;
|
||||
placeholderSelect?: T;
|
||||
defaultRelationship?: T;
|
||||
placeholderRelationship?: T;
|
||||
updatedAt?: T;
|
||||
createdAt?: T;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "payload-locked-documents_select".
|
||||
|
||||
Reference in New Issue
Block a user