chore: adds global methods
This commit is contained in:
@@ -3,6 +3,7 @@ import { LocalizedArrays } from './collections/LocalizedArrays';
|
||||
import { LocalizedBlocks } from './collections/LocalizedBlocks';
|
||||
import { LocalizedGroups } from './collections/LocalizedGroups';
|
||||
import { Posts } from './collections/Posts';
|
||||
import { MainMenu } from './globals/MainMenu';
|
||||
|
||||
const config = buildConfigWithDefaults({
|
||||
collections: [
|
||||
@@ -30,6 +31,9 @@ const config = buildConfigWithDefaults({
|
||||
],
|
||||
},
|
||||
],
|
||||
globals: [
|
||||
MainMenu,
|
||||
],
|
||||
localization: {
|
||||
locales: ['en', 'es'],
|
||||
defaultLocale: 'en',
|
||||
|
||||
27
test/postgres/globals/MainMenu.ts
Normal file
27
test/postgres/globals/MainMenu.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
import { GlobalConfig } from '../../../src/globals/config/types';
|
||||
|
||||
export const MainMenu: GlobalConfig = {
|
||||
slug: 'main-menu',
|
||||
fields: [
|
||||
{
|
||||
name: 'title',
|
||||
type: 'text',
|
||||
localized: true,
|
||||
},
|
||||
{
|
||||
name: 'nonLocalizedField',
|
||||
type: 'text',
|
||||
},
|
||||
{
|
||||
name: 'array',
|
||||
type: 'array',
|
||||
fields: [
|
||||
{
|
||||
name: 'localizedText',
|
||||
type: 'text',
|
||||
localized: true,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
};
|
||||
@@ -493,4 +493,70 @@ describe('Postgres', () => {
|
||||
expect(retrievedGroup.group.es.number).toStrictEqual(456);
|
||||
});
|
||||
});
|
||||
|
||||
describe('globals', () => {
|
||||
let mainMenu;
|
||||
it('creates global', async () => {
|
||||
mainMenu = await payload.updateGlobal({
|
||||
slug: 'main-menu',
|
||||
data: {
|
||||
title: 'hello in english',
|
||||
nonLocalizedField: 'hello',
|
||||
array: [
|
||||
{
|
||||
localizedText: 'row 1 en',
|
||||
},
|
||||
{
|
||||
localizedText: 'row 2 en',
|
||||
},
|
||||
],
|
||||
},
|
||||
});
|
||||
|
||||
expect(mainMenu.title).toStrictEqual('hello in english');
|
||||
expect(mainMenu.nonLocalizedField).toStrictEqual('hello');
|
||||
expect(mainMenu.array[0].localizedText).toStrictEqual('row 1 en');
|
||||
expect(mainMenu.array[1].localizedText).toStrictEqual('row 2 en');
|
||||
});
|
||||
|
||||
it('adds locale to global', async () => {
|
||||
const updated = await payload.updateGlobal({
|
||||
slug: 'main-menu',
|
||||
locale: 'es',
|
||||
data: {
|
||||
title: 'hello in spanish',
|
||||
array: [
|
||||
{
|
||||
id: mainMenu.array[0].id,
|
||||
localizedText: 'row 1 es',
|
||||
},
|
||||
{
|
||||
id: mainMenu.array[1].id,
|
||||
localizedText: 'row 2 es',
|
||||
},
|
||||
],
|
||||
},
|
||||
});
|
||||
|
||||
expect(updated.title).toStrictEqual('hello in spanish');
|
||||
expect(updated.nonLocalizedField).toStrictEqual('hello');
|
||||
expect(updated.array[0].localizedText).toStrictEqual('row 1 es');
|
||||
expect(updated.array[1].localizedText).toStrictEqual('row 2 es');
|
||||
});
|
||||
|
||||
it('retrieves global in all locales', async () => {
|
||||
const retrieved = await payload.findGlobal({
|
||||
slug: 'main-menu',
|
||||
locale: 'all',
|
||||
});
|
||||
|
||||
expect(retrieved.title.en).toStrictEqual('hello in english');
|
||||
expect(retrieved.title.es).toStrictEqual('hello in spanish');
|
||||
expect(retrieved.nonLocalizedField).toStrictEqual('hello');
|
||||
expect(retrieved.array[0].localizedText.en).toStrictEqual('row 1 en');
|
||||
expect(retrieved.array[1].localizedText.en).toStrictEqual('row 2 en');
|
||||
expect(retrieved.array[0].localizedText.es).toStrictEqual('row 1 es');
|
||||
expect(retrieved.array[1].localizedText.es).toStrictEqual('row 2 es');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user