chore: update 2.0 branch from master (#3207)
Co-authored-by: Jacob Fletcher <jacobsfletch@gmail.com> Co-authored-by: Alessio Gravili <alessio@gravili.de> Co-authored-by: PatrikKozak <patrik@trbl.design> Co-authored-by: Lucas Blancas <lablancas@gmail.com> Co-authored-by: Stef Gootzen <37367280+stefgootzen@users.noreply.github.com> Co-authored-by: Jarrod Flesch <30633324+JarrodMFlesch@users.noreply.github.com> Co-authored-by: Jessica Chowdhury <67977755+JessChowdhury@users.noreply.github.com> Co-authored-by: PatrikKozak <35232443+PatrikKozak@users.noreply.github.com> Co-authored-by: Greg Willard <Wickett06@gmail.com> Co-authored-by: James Mikrut <james@payloadcms.com> Co-authored-by: Dan Ribbens <dan.ribbens@gmail.com> Co-authored-by: Elliot DeNolf <denolfe@gmail.com> fix: WhereBuilder component does not accept all valid Where queries (#3087) fix: passes in height to resizeOptions upload option to allow height resize (#3171)
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { initPayloadTest } from '../helpers/configHelpers';
|
||||
import config from './config';
|
||||
import configPromise from './config';
|
||||
import payload from '../../src';
|
||||
import { RESTClient } from '../helpers/rest';
|
||||
import { transformSlug } from './collections/Transform';
|
||||
@@ -7,10 +7,10 @@ import { hooksSlug } from './collections/Hook';
|
||||
import { chainingHooksSlug } from './collections/ChainingHooks';
|
||||
import { generatedAfterReadText, nestedAfterReadHooksSlug } from './collections/NestedAfterReadHooks';
|
||||
import { relationsSlug } from './collections/Relations';
|
||||
import type { NestedAfterReadHook } from './payload-types';
|
||||
import { hooksUsersSlug } from './collections/Users';
|
||||
import { devUser, regularUser } from '../credentials';
|
||||
import { AuthenticationError } from '../../src/errors';
|
||||
import { afterOperationSlug } from './collections/AfterOperation';
|
||||
import { contextHooksSlug } from './collections/ContextHooks';
|
||||
|
||||
let client: RESTClient;
|
||||
@@ -19,6 +19,7 @@ let apiUrl;
|
||||
describe('Hooks', () => {
|
||||
beforeAll(async () => {
|
||||
const { serverURL } = await initPayloadTest({ __dirname, init: { local: false } });
|
||||
const config = await configPromise;
|
||||
client = new RESTClient(config, { serverURL, defaultSlug: transformSlug });
|
||||
apiUrl = `${serverURL}/api`;
|
||||
});
|
||||
@@ -73,7 +74,7 @@ describe('Hooks', () => {
|
||||
});
|
||||
|
||||
it('should save data generated with afterRead hooks in nested field structures', async () => {
|
||||
const document = await payload.create<NestedAfterReadHook>({
|
||||
const document = await payload.create({
|
||||
collection: nestedAfterReadHooksSlug,
|
||||
data: {
|
||||
text: 'ok',
|
||||
@@ -154,6 +155,62 @@ describe('Hooks', () => {
|
||||
expect(retrievedDocs[0].text).toEqual('ok!!');
|
||||
});
|
||||
|
||||
it('should execute collection afterOperation hook', async () => {
|
||||
const [doc1, doc2] = await Promise.all([
|
||||
await payload.create({
|
||||
collection: afterOperationSlug,
|
||||
data: {
|
||||
title: 'Title',
|
||||
},
|
||||
}),
|
||||
await payload.create({
|
||||
collection: afterOperationSlug,
|
||||
data: {
|
||||
title: 'Title',
|
||||
},
|
||||
}),
|
||||
]);
|
||||
|
||||
expect(doc1.title === 'Title created').toBeTruthy();
|
||||
expect(doc2.title === 'Title created').toBeTruthy();
|
||||
|
||||
const findResult = await payload.find({
|
||||
collection: afterOperationSlug,
|
||||
});
|
||||
|
||||
expect(findResult.docs).toHaveLength(2);
|
||||
expect(findResult.docs[0].title === 'Title read').toBeTruthy();
|
||||
expect(findResult.docs[1].title === 'Title').toBeTruthy();
|
||||
|
||||
const [updatedDoc1, updatedDoc2] = await Promise.all([
|
||||
await payload.update({
|
||||
collection: afterOperationSlug,
|
||||
id: doc1.id,
|
||||
data: {
|
||||
title: 'Title',
|
||||
},
|
||||
}),
|
||||
await payload.update({
|
||||
collection: afterOperationSlug,
|
||||
id: doc2.id,
|
||||
data: {
|
||||
title: 'Title',
|
||||
},
|
||||
}),
|
||||
]);
|
||||
|
||||
expect(updatedDoc1.title === 'Title updated').toBeTruthy();
|
||||
expect(updatedDoc2.title === 'Title updated').toBeTruthy();
|
||||
|
||||
const findResult2 = await payload.find({
|
||||
collection: afterOperationSlug,
|
||||
});
|
||||
|
||||
expect(findResult2.docs).toHaveLength(2);
|
||||
expect(findResult2.docs[0].title === 'Title read').toBeTruthy();
|
||||
expect(findResult2.docs[1].title === 'Title').toBeTruthy();
|
||||
});
|
||||
|
||||
it('should pass context from beforeChange to afterChange', async () => {
|
||||
const document = await payload.create({
|
||||
collection: contextHooksSlug,
|
||||
|
||||
Reference in New Issue
Block a user