enhancement!: create sends 201 status code

This commit is contained in:
Ben Irvin 2024-04-15 14:03:47 +02:00 committed by GitHub
parent 63d7006f9e
commit 18019758d6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
66 changed files with 179 additions and 161 deletions

View File

@ -232,6 +232,7 @@ export default {
]);
const sanitizedDocument = await permissionChecker.sanitizeOutput(document);
ctx.status = 201;
ctx.body = await documentMetadata.formatDocumentWithMetadata(model, sanitizedDocument, {
// Empty metadata as it's not relevant for a new document
availableLocales: false,

View File

@ -100,6 +100,7 @@ describe('Release Action controller', () => {
params: {
releaseId: 1,
},
created: jest.fn(),
request: {
body: [
{
@ -123,9 +124,18 @@ describe('Release Action controller', () => {
await releaseActionController.createMany(ctx);
expect(mockCreateAction).toHaveBeenCalledTimes(2);
expect(ctx.body.data).toHaveLength(2);
expect(ctx.body.meta.totalEntries).toBe(2);
expect(ctx.body.meta.entriesAlreadyInRelease).toBe(0);
expect(ctx.created).toHaveBeenCalledWith(
expect.objectContaining({
data: expect.any(Array), // Ensure data is an array
meta: expect.objectContaining({
totalEntries: 2,
entriesAlreadyInRelease: 0,
}),
})
);
const firstCallArgument = ctx.created.mock.calls[0][0];
expect(firstCallArgument.data.length).toBe(2);
});
it('should count already added entries and dont throw an error', async () => {
@ -139,6 +149,7 @@ describe('Release Action controller', () => {
params: {
releaseId: 1,
},
created: jest.fn(),
request: {
body: [
{
@ -155,9 +166,10 @@ describe('Release Action controller', () => {
await releaseActionController.createMany(ctx);
expect(mockCreateAction).toHaveBeenCalledTimes(1);
expect(ctx.body.data).toHaveLength(0);
expect(ctx.body.meta.totalEntries).toBe(1);
expect(ctx.body.meta.entriesAlreadyInRelease).toBe(1);
expect(ctx.created).toHaveBeenCalledWith({
data: [],
meta: { totalEntries: 1, entriesAlreadyInRelease: 1 },
});
});
});

View File

@ -26,9 +26,9 @@ const releaseActionController = {
const releaseService = getService('release', { strapi });
const releaseAction = await releaseService.createAction(releaseId, releaseActionArgs);
ctx.body = {
ctx.created({
data: releaseAction,
};
});
},
async createMany(ctx: Koa.Context) {
@ -64,13 +64,13 @@ const releaseActionController = {
const newReleaseActions = releaseActions.filter((action) => action !== null);
ctx.body = {
ctx.created({
data: newReleaseActions,
meta: {
entriesAlreadyInRelease: releaseActions.length - newReleaseActions.length,
totalEntries: releaseActions.length,
},
};
});
},
async findMany(ctx: Koa.Context) {

View File

@ -120,9 +120,11 @@ const releaseController = {
model: RELEASE_MODEL_UID,
});
ctx.body = {
data: await permissionsManager.sanitizeOutput(release),
};
ctx.created({
body: {
data: await permissionsManager.sanitizeOutput(release),
},
});
},
async update(ctx: Koa.Context) {

View File

@ -66,6 +66,7 @@ const createCollectionTypeController = ({
const sanitizedEntity = await this.sanitizeOutput(entity, ctx);
ctx.status = 201;
return this.transformResponse(sanitizedEntity);
},

View File

@ -59,9 +59,9 @@ export default {
})
.then(formatWorkflowToAdmin);
ctx.body = {
ctx.created({
data: await sanitizeOutput(createdWorkflow),
};
});
},
/**

View File

@ -94,9 +94,9 @@ export default {
model: FOLDER_MODEL_UID,
});
ctx.body = {
ctx.created({
data: await permissionsManager.sanitizeOutput(folder),
};
});
},
async update(ctx: Context) {

View File

@ -92,6 +92,7 @@ export default {
const signedFiles = await async.map(uploadedFiles, getService('file').signFileUrls);
ctx.body = await pm.sanitizeOutput(signedFiles, { action: ACTIONS.read });
ctx.status = 201;
},
// TODO: split into multiple endpoints

View File

@ -138,6 +138,7 @@ export default ({ strapi }: { strapi: Core.Strapi }) => {
});
ctx.body = await sanitizeOutput(uploadedFiles as any, ctx);
ctx.status = 201;
},
// TODO: split into multiple endpoints

View File

@ -78,7 +78,7 @@ describe('CM API - Basic + compo', () => {
body: product,
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data).toMatchObject(product);
expect(res.body.data.publishedAt).toBeDefined();
data.productsWithCompo.push(res.body.data);

View File

@ -75,7 +75,7 @@ describe('CM API - Basic + compo', () => {
body: product,
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data).toMatchObject(product);
expect(res.body.data.publishedAt).toBeDefined();
data.productsWithCompo.push(res.body.data);

View File

@ -81,7 +81,7 @@ describe('CM API - Basic + compo', () => {
body: product,
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data).toMatchObject(product);
expect(res.body.data.publishedAt).toBeNull();
data.productsWithCompoAndDP.push(res.body.data);

View File

@ -78,7 +78,7 @@ describe('CM API - Basic + compo', () => {
body: product,
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data).toMatchObject(product);
expect(res.body.data.publishedAt).toBeNull();
data.productsWithCompoAndDP.push(res.body.data);
@ -140,7 +140,7 @@ describe('CM API - Basic + compo', () => {
body: product,
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data).toMatchObject(product);
data.productsWithCompoAndDP.push(res.body.data);
});
@ -160,7 +160,7 @@ describe('CM API - Basic + compo', () => {
body: product,
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data).toMatchObject(product);
data.productsWithCompoAndDP.push(res.body.data);
});
@ -214,7 +214,7 @@ describe('CM API - Basic + compo', () => {
body: product,
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data).toMatchObject(product);
data.productsWithCompoAndDP.push(res.body.data);
});

View File

@ -81,7 +81,7 @@ describe('CM API - Basic + dz', () => {
body: product,
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data).toMatchObject(product);
expect(res.body.data.publishedAt).toBeNull();
data.productsWithDzAndDP.push(res.body.data);
@ -181,7 +181,7 @@ describe('CM API - Basic + dz', () => {
body: product,
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(method === 'create' ? 201 : 200);
expect(res.body.data).toMatchObject(product);
data.productsWithDzAndDP.push(res.body.data);
});
@ -206,7 +206,7 @@ describe('CM API - Basic + dz', () => {
body: product,
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(method === 'create' ? 201 : 200);
expect(res.body.data).toMatchObject(product);
data.productsWithDzAndDP.push(res.body.data);
});
@ -270,7 +270,7 @@ describe('CM API - Basic + dz', () => {
body: product,
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(method === 'create' ? 201 : 200);
expect(res.body.data).toMatchObject(product);
data.productsWithDzAndDP.push(res.body.data);
});

View File

@ -73,7 +73,7 @@ describe('CM API - Basic', () => {
body: product,
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data).toMatchObject(product);
expect(res.body.data.publishedAt).toBeNull();
data.productsWithDP.push(res.body.data);
@ -91,7 +91,7 @@ describe('CM API - Basic', () => {
body: product,
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data).toMatchObject(_.omit(product, 'publishedAt'));
expect(res.body.data.publishedAt).toBeNull();
data.productsWithDP.push(res.body.data);
@ -409,7 +409,7 @@ describe('CM API - Basic', () => {
body: product,
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data).toMatchObject(product);
data.productsWithDP.push(res.body.data);
});
@ -424,7 +424,7 @@ describe('CM API - Basic', () => {
body: product,
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data).toMatchObject({
...product,
});

View File

@ -79,7 +79,7 @@ describe('CM API - Basic + dz', () => {
body: product,
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data).toMatchObject(product);
expect(res.body.data.publishedAt).toBe(null);
data.productsWithDz.push(res.body.data);

View File

@ -68,7 +68,7 @@ describe('CM API - Basic', () => {
body: product,
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data).toMatchObject(omit('hiddenAttribute', product));
expect(res.body.data).not.toHaveProperty('hiddenAttribute');
expect(res.body.data.publishedAt).toBeDefined();

View File

@ -66,7 +66,7 @@ describe('Non repeatable and Not required component', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(Array.isArray(res.body.data.field)).toBe(true);
expect(res.body.data.field).toEqual(
expect.arrayContaining([
@ -112,7 +112,7 @@ describe('Non repeatable and Not required component', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
});
test('Throws when sending too many items', async () => {
@ -152,7 +152,7 @@ describe('Non repeatable and Not required component', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data.field).toEqual([]);
});
});

View File

@ -61,7 +61,7 @@ describe('Non repeatable and Not required component', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(Array.isArray(res.body.data.field)).toBe(true);
expect(res.body.data.field).toEqual(
expect.arrayContaining([
@ -96,7 +96,7 @@ describe('Non repeatable and Not required component', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data.field).toEqual([]);
});
@ -108,7 +108,7 @@ describe('Non repeatable and Not required component', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data.field).toEqual([]);
});
});

View File

@ -63,7 +63,7 @@ describe('Non repeatable and Not required component', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(Array.isArray(res.body.data.field)).toBe(true);
expect(res.body.data.field).toEqual(
expect.arrayContaining([
@ -89,7 +89,7 @@ describe('Non repeatable and Not required component', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(Array.isArray(res.body.data.field)).toBe(true);
expect(res.body.data.field).toEqual(
expect.arrayContaining([

View File

@ -61,7 +61,7 @@ describe('Non repeatable and Not required component', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(Array.isArray(res.body.data.field)).toBe(true);
expect(res.body.data.field).toEqual(
expect.arrayContaining([
@ -87,7 +87,7 @@ describe('Non repeatable and Not required component', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(Array.isArray(res.body.data.field)).toBe(true);
expect(res.body.data.field).toEqual(
expect.arrayContaining([
@ -122,7 +122,7 @@ describe('Non repeatable and Not required component', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data.field).toEqual([]);
});

View File

@ -60,7 +60,7 @@ describe('Non repeatable and Not required component', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data.field).toEqual(
expect.objectContaining({
id: expect.anything(),
@ -81,7 +81,7 @@ describe('Non repeatable and Not required component', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data.field).toEqual(
expect.objectContaining({
id: expect.anything(),
@ -113,7 +113,7 @@ describe('Non repeatable and Not required component', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data.field).toBe(null);
});
@ -125,7 +125,7 @@ describe('Non repeatable and Not required component', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data.field).toBe(null);
});
});

View File

@ -59,7 +59,7 @@ describe('Non repeatable and required component', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data.field).toEqual(
expect.objectContaining({
id: expect.anything(),
@ -80,7 +80,7 @@ describe('Non repeatable and required component', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data.field).toEqual(
expect.objectContaining({
id: expect.anything(),

View File

@ -118,7 +118,7 @@ describe('Not required dynamiczone', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(Array.isArray(res.body.data.field)).toBe(true);
expect(res.body.data).toMatchObject({
field: [
@ -151,7 +151,7 @@ describe('Not required dynamiczone', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(Array.isArray(res.body.data.field)).toBe(true);
expect(res.body.data.field.length).toBe(0);
});
@ -257,7 +257,7 @@ describe('Not required dynamiczone', () => {
test('Can empty non required dynamic zone', async () => {
const createRes = await createEntry();
expect(createRes.statusCode).toBe(200);
expect(createRes.statusCode).toBe(201);
const entryId = createRes.body.data.documentId;
const res = await rq({
@ -279,7 +279,7 @@ describe('Not required dynamiczone', () => {
test('Can add items to empty dynamic zone', async () => {
const createRes = await createEmpty();
expect(createRes.statusCode).toBe(200);
expect(createRes.statusCode).toBe(201);
const entryId = createRes.body.data.documentId;
const res = await rq({
@ -315,7 +315,7 @@ describe('Not required dynamiczone', () => {
test('Can remove items from dynamic zone', async () => {
const createRes = await createEntry();
expect(createRes.statusCode).toBe(200);
expect(createRes.statusCode).toBe(201);
const entryId = createRes.body.data.documentId;
const res = await rq({
@ -359,7 +359,7 @@ describe('Not required dynamiczone', () => {
test('Respects min items', async () => {
const createRes = await createEntry();
expect(createRes.statusCode).toBe(200);
expect(createRes.statusCode).toBe(201);
const entryId = createRes.body.data.documentId;
const res = await rq({
@ -381,7 +381,7 @@ describe('Not required dynamiczone', () => {
test('Respects max items', async () => {
const createRes = await createEntry();
expect(createRes.statusCode).toBe(200);
expect(createRes.statusCode).toBe(201);
const entryId = createRes.body.data.documentId;
const res = await rq({

View File

@ -96,7 +96,7 @@ describe('Not required dynamiczone', () => {
test('The medias are correctly related to the components on creation', async () => {
const imgRes = await uploadImg();
expect(imgRes.statusCode).toBe(200);
expect(imgRes.statusCode).toBe(201);
const mediaId = imgRes.body[0].id;
const res = await rq({
@ -119,7 +119,7 @@ describe('Not required dynamiczone', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(Array.isArray(res.body.data.field)).toBe(true);
expect(res.body.data).toMatchObject({
field: [
@ -148,7 +148,7 @@ describe('Not required dynamiczone', () => {
test('The medias are correctly related to the components on edition', async () => {
const imgRes = await uploadImg();
expect(imgRes.statusCode).toBe(200);
expect(imgRes.statusCode).toBe(201);
const mediaId = imgRes.body[0].id;
const res = await rq({
@ -171,12 +171,12 @@ describe('Not required dynamiczone', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(Array.isArray(res.body.data.field)).toBe(true);
const newImgRes = await uploadImg();
expect(newImgRes.statusCode).toBe(200);
expect(newImgRes.statusCode).toBe(201);
const newMediaId = newImgRes.body[0].id;
const updateRes = await rq({
method: 'PUT',
@ -225,7 +225,7 @@ describe('Not required dynamiczone', () => {
test('The media are populated on the components', async () => {
const imgRes = await uploadImg();
expect(imgRes.statusCode).toBe(200);
expect(imgRes.statusCode).toBe(201);
const mediaId = imgRes.body[0].id;
const res = await rq({
@ -248,7 +248,7 @@ describe('Not required dynamiczone', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
const getRes = await rq({
method: 'GET',
@ -287,7 +287,7 @@ describe('Not required dynamiczone', () => {
test('The medias are correctly related to the nested components on creation', async () => {
const imgRes = await uploadImg();
expect(imgRes.statusCode).toBe(200);
expect(imgRes.statusCode).toBe(201);
const mediaId = imgRes.body[0].id;
const res = await rq({
@ -311,7 +311,7 @@ describe('Not required dynamiczone', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(Array.isArray(res.body.data.field)).toBe(true);
expect(res.body.data).toMatchObject({
field: [

View File

@ -43,7 +43,7 @@ describe('Test type biginteger', () => {
}
);
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data).toMatchObject({
field: inputValue,
});
@ -60,7 +60,7 @@ describe('Test type biginteger', () => {
}
);
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data).toMatchObject({
field: `${inputValue}`,
});

View File

@ -39,7 +39,7 @@ describe('Test type boolean', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data).toMatchObject({
field: true,
});
@ -58,7 +58,7 @@ describe('Test type boolean', () => {
body: { field: 1 },
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data).toMatchObject({
field: true,
});
@ -67,7 +67,7 @@ describe('Test type boolean', () => {
body: { field: 0 },
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data).toMatchObject({
field: false,
});

View File

@ -40,7 +40,7 @@ describe('Test type decimal', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data).toMatchObject({
field: inputValue,
});
@ -54,7 +54,7 @@ describe('Test type decimal', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data).toMatchObject({
field: 1821.0,
});

View File

@ -39,7 +39,7 @@ describe('Test type email', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data).toMatchObject({
field: 'validemail@test.fr',
});
@ -62,7 +62,7 @@ describe('Test type email', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data).toMatchObject({
field: 'test@email.fr',
});

View File

@ -43,7 +43,7 @@ describe('Test type enumeration', () => {
}
);
expect(res.statusCode).toBe(200); // should return 201
expect(res.statusCode).toBe(201);
expect(res.body.data).toMatchObject({
field: 'one',
});
@ -98,7 +98,7 @@ describe('Test type enumeration', () => {
}
);
expect(res.statusCode).toBe(200); // should return 201
expect(res.statusCode).toBe(201);
expect(res.body.data).toMatchObject({
field: null,
});

View File

@ -40,7 +40,7 @@ describe('Test type float', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data).toMatchObject({
field: inputValue,
});
@ -54,7 +54,7 @@ describe('Test type float', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data).toMatchObject({
field: 1821.0,
});

View File

@ -39,7 +39,7 @@ describe('Test type integer', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data).toMatchObject({
field: 123456,
});
@ -53,7 +53,7 @@ describe('Test type integer', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data).toMatchObject({
field: 123456,
});

View File

@ -42,7 +42,7 @@ describe('Test type json', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data).toMatchObject({
field: inputValue,
});
@ -63,7 +63,7 @@ describe('Test type json', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data).toMatchObject({
field: inputValue,
});

View File

@ -39,7 +39,7 @@ describe('Test type password', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data.field).toBeUndefined();
});
@ -52,7 +52,7 @@ describe('Test type password', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data.field).toBeUndefined();
});

View File

@ -39,7 +39,7 @@ describe('Test type richtext', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data).toMatchObject({
field: 'Some\ntext',
});

View File

@ -39,7 +39,7 @@ describe('Test type string', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data).toMatchObject({
field: 'Some string',
});

View File

@ -39,7 +39,7 @@ describe('Test type text', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data).toMatchObject({
field: 'Some\ntext',
});

View File

@ -41,7 +41,7 @@ describe('Test type UID', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data).toMatchObject({
slug: 'valid-uid',
});
@ -76,7 +76,7 @@ describe('Test type UID', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data).toMatchObject({
slug: null,
});
@ -140,7 +140,7 @@ describe('Test type UID', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data).toMatchObject({
slug: value,
});
@ -159,7 +159,7 @@ describe('Test type UID', () => {
slug: value,
},
});
expect(newLocaleResult.statusCode).toBe(200);
expect(newLocaleResult.statusCode).toBe(201);
});
});
@ -200,7 +200,7 @@ describe('Test type UID', () => {
}
);
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data).toMatchObject({
slug: 'valid-uid',
});

View File

@ -133,7 +133,7 @@ describeOnCondition(edition === 'EE')('Review workflows - Content Types', () =>
test('It should create a workflow and assign a content type', async () => {
const res = await createWorkflow({ name: 'test-workflow', contentTypes: [productUID] });
expect(res.status).toBe(200);
expect(res.status).toBe(201);
expect(res.body.data).toMatchObject({
name: expect.any(String),
contentTypes: [productUID],
@ -158,7 +158,7 @@ describeOnCondition(edition === 'EE')('Review workflows - Content Types', () =>
stages: [{ name: 'Review' }],
});
expect(res.status).toBe(200);
expect(res.status).toBe(201);
expect(res.body.data).toMatchObject({ contentTypes: [productUID] });
workflow2 = res.body.data;
});

View File

@ -224,7 +224,7 @@ describeOnCondition(edition === 'EE')('Review workflows', () => {
});
if (hasRW) {
expect(res.status).toBe(200);
expect(res.status).toBe(201);
expect(res.body.data).toMatchObject({
name: 'createdWorkflow',
stages: [

View File

@ -84,7 +84,7 @@ describe('Core API - Basic + compo', () => {
},
});
expect(statusCode).toBe(200);
expect(statusCode).toBe(201);
expect(body.data).toMatchObject({
documentId: expect.anything(),

View File

@ -85,7 +85,7 @@ describe('Core API - Basic + compo', () => {
},
});
expect(statusCode).toBe(200);
expect(statusCode).toBe(201);
expect(body.data).toMatchObject({
documentId: expect.anything(),

View File

@ -85,7 +85,7 @@ describe('Core API - Basic + compo ', () => {
},
});
expect(statusCode).toBe(200);
expect(statusCode).toBe(201);
expect(body.data).toMatchObject({
documentId: expect.anything(),

View File

@ -82,7 +82,7 @@ describe('Core API - Basic + compo', () => {
},
});
expect(statusCode).toBe(200);
expect(statusCode).toBe(201);
expect(body.data).toMatchObject({
documentId: expect.anything(),

View File

@ -75,7 +75,7 @@ describe('Core API - Basic', () => {
},
});
expect(statusCode).toBe(200);
expect(statusCode).toBe(201);
expect(body.data).toMatchObject({
id: expect.anything(),
...product,
@ -101,7 +101,7 @@ describe('Core API - Basic', () => {
},
});
expect(statusCode).toBe(200);
expect(statusCode).toBe(201);
expect(body.data).toMatchObject({
documentId: expect.anything(),
..._.omit(product, 'publishedAt'),

View File

@ -84,7 +84,7 @@ describe('Core API - Basic + dz', () => {
},
});
expect(statusCode).toBe(200);
expect(statusCode).toBe(201);
expect(body.data).toMatchObject({
documentId: expect.anything(),

View File

@ -70,7 +70,7 @@ describe('Core API - Basic', () => {
const { statusCode, body } = res;
expect(statusCode).toBe(200);
expect(statusCode).toBe(201);
expect(body).toMatchObject({
data: {
id: expect.anything(),

View File

@ -56,7 +56,7 @@ describe('Validate Body', () => {
const response = await rq.post('/products', { body: createPayload });
expect(response.statusCode).toBe(200);
expect(response.statusCode).toBe(201);
const { documentId, ...attributes } = response.body.data;

View File

@ -69,7 +69,7 @@ describe('Non repeatable and Not required component', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(Array.isArray(res.body.data.field)).toBe(true);
expect(res.body.data.field).toEqual(
expect.arrayContaining([
@ -121,7 +121,7 @@ describe('Non repeatable and Not required component', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
});
test('Throws when sending too many items', async () => {
@ -165,7 +165,7 @@ describe('Non repeatable and Not required component', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data.field).toEqual([]);
});
});

View File

@ -64,7 +64,7 @@ describe('Non repeatable and Not required component', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(Array.isArray(res.body.data.field)).toBe(true);
expect(res.body.data.field).toEqual(
expect.arrayContaining([
@ -103,7 +103,7 @@ describe('Non repeatable and Not required component', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data.field).toEqual([]);
});
@ -117,7 +117,7 @@ describe('Non repeatable and Not required component', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data.field).toEqual([]);
});
});

View File

@ -66,7 +66,7 @@ describe('Non repeatable and Not required component', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(Array.isArray(res.body.data.field)).toBe(true);
expect(res.body.data.field).toEqual(
expect.arrayContaining([
@ -94,7 +94,7 @@ describe('Non repeatable and Not required component', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(Array.isArray(res.body.data.field)).toBe(true);
expect(res.body.data.field).toEqual(
expect.arrayContaining([

View File

@ -64,7 +64,7 @@ describe('Non repeatable and Not required component', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data.field).toEqual(
expect.arrayContaining([
expect.objectContaining({
@ -91,7 +91,7 @@ describe('Non repeatable and Not required component', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data.field).toEqual(
expect.arrayContaining([
expect.objectContaining({
@ -129,7 +129,7 @@ describe('Non repeatable and Not required component', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data.field).toEqual([]);
});

View File

@ -62,7 +62,7 @@ describe('Non repeatable and Not required component', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data.field).toEqual(
expect.objectContaining({
id: expect.anything(),
@ -85,7 +85,7 @@ describe('Non repeatable and Not required component', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data.field).toEqual(
expect.objectContaining({
id: expect.anything(),
@ -121,7 +121,7 @@ describe('Non repeatable and Not required component', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data.field).toBe(null);
});
@ -135,7 +135,7 @@ describe('Non repeatable and Not required component', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data.field).toBe(null);
});
});

View File

@ -62,7 +62,7 @@ describe('Non repeatable and required component', () => {
},
});
expect(statusCode).toBe(200);
expect(statusCode).toBe(201);
expect(body.data.field).toEqual(
expect.objectContaining({
id: expect.anything(),
@ -85,7 +85,7 @@ describe('Non repeatable and required component', () => {
},
});
expect(statusCode).toBe(200);
expect(statusCode).toBe(201);
expect(body.data.field).toEqual(
expect.objectContaining({
id: expect.anything(),

View File

@ -122,7 +122,7 @@ describe('Not required dynamiczone', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(Array.isArray(res.body.data.field)).toBe(true);
expect(res.body.data).toMatchObject({
field: [
@ -157,7 +157,7 @@ describe('Not required dynamiczone', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(Array.isArray(res.body.data.field)).toBe(true);
expect(res.body.data.field.length).toBe(0);
});
@ -266,7 +266,7 @@ describe('Not required dynamiczone', () => {
test('Can empty non required dynamic zone', async () => {
const createRes = await createEntry();
expect(createRes.statusCode).toBe(200);
expect(createRes.statusCode).toBe(201);
const documentId = createRes.body.data.documentId;
const res = await rq({
@ -290,7 +290,7 @@ describe('Not required dynamiczone', () => {
test('Can add items to empty dynamic zone', async () => {
const createRes = await createEmpty();
expect(createRes.statusCode).toBe(200);
expect(createRes.statusCode).toBe(201);
const documentId = createRes.body.data.documentId;
const res = await rq({
@ -328,7 +328,7 @@ describe('Not required dynamiczone', () => {
test('Can remove items from dynamic zone', async () => {
const createRes = await createEntry();
expect(createRes.statusCode).toBe(200);
expect(createRes.statusCode).toBe(201);
const documentId = createRes.body.data.documentId;
const res = await rq({
@ -374,7 +374,7 @@ describe('Not required dynamiczone', () => {
test('Respects min items', async () => {
const createRes = await createEntry();
expect(createRes.statusCode).toBe(200);
expect(createRes.statusCode).toBe(201);
const documentId = createRes.body.data.documentId;
const res = await rq({
@ -398,7 +398,7 @@ describe('Not required dynamiczone', () => {
test('Respects max items', async () => {
const createRes = await createEntry();
expect(createRes.statusCode).toBe(200);
expect(createRes.statusCode).toBe(201);
const documentId = createRes.body.data.documentId;
const res = await rq({

View File

@ -94,7 +94,7 @@ describe('Not required dynamiczone', () => {
test('The medias are correctly related to the components on creation', async () => {
const imgRes = await uploadImg();
expect(imgRes.statusCode).toBe(200);
expect(imgRes.statusCode).toBe(201);
const mediaId = imgRes.body[0].id;
const res = await rq({
@ -119,7 +119,7 @@ describe('Not required dynamiczone', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(Array.isArray(res.body.data.field)).toBe(true);
expect(res.body.data).toMatchObject({
field: [
@ -148,7 +148,7 @@ describe('Not required dynamiczone', () => {
test('The medias are correctly related to the components on edition', async () => {
const imgRes = await uploadImg();
expect(imgRes.statusCode).toBe(200);
expect(imgRes.statusCode).toBe(201);
const mediaId = imgRes.body[0].id;
const res = await rq({
@ -173,12 +173,12 @@ describe('Not required dynamiczone', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(Array.isArray(res.body.data.field)).toBe(true);
const newImgRes = await uploadImg();
expect(newImgRes.statusCode).toBe(200);
expect(newImgRes.statusCode).toBe(201);
const newMediaId = newImgRes.body[0].id;
const updateRes = await rq({
method: 'PUT',
@ -229,7 +229,7 @@ describe('Not required dynamiczone', () => {
test('The media are populated on the components', async () => {
const imgRes = await uploadImg();
expect(imgRes.statusCode).toBe(200);
expect(imgRes.statusCode).toBe(201);
const mediaId = imgRes.body[0].id;
const res = await rq({
@ -254,7 +254,7 @@ describe('Not required dynamiczone', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
const getRes = await rq({
method: 'GET',
@ -293,7 +293,7 @@ describe('Not required dynamiczone', () => {
test('The medias are correctly related to the nested components on creation', async () => {
const imgRes = await uploadImg();
expect(imgRes.statusCode).toBe(200);
expect(imgRes.statusCode).toBe(201);
const mediaId = imgRes.body[0].id;
const res = await rq({
@ -319,7 +319,7 @@ describe('Not required dynamiczone', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(Array.isArray(res.body.data.field)).toBe(true);
expect(res.body.data).toMatchObject({
field: [

View File

@ -170,7 +170,7 @@ describe('Migration - draft and publish', () => {
body: dogToCreate,
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data).toMatchObject(dogToCreate);
data.dogs.push(res.body);

View File

@ -55,7 +55,7 @@ describe('File', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(Array.isArray(res.body)).toBe(true);
expect(res.body.length).toBe(1);
@ -94,7 +94,7 @@ describe('File', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(Array.isArray(res.body)).toBe(true);
expect(res.body.length).toBe(1);

View File

@ -46,7 +46,7 @@ describe('Upload', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(Array.isArray(res.body)).toBe(true);
expect(res.body.length).toBe(1);
expect(res.body[0]).toEqual(
@ -74,7 +74,7 @@ describe('Upload', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(Array.isArray(res.body)).toBe(true);
expect(res.body.length).toBe(1);
expect(res.body[0]).toEqual(

View File

@ -57,7 +57,7 @@ describe('Upload', () => {
formData: { files: fs.createReadStream(path.join(__dirname, '../utils/rec.jpg')) },
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
});
});
});

View File

@ -48,7 +48,7 @@ describe('Upload', () => {
formData: { files: fs.createReadStream(path.join(__dirname, '../utils/rec.jpg')) },
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
});
});

View File

@ -71,7 +71,7 @@ describe.skip('Folder', () => {
},
});
expect(res.status).toBe(200);
expect(res.status).toBe(201);
expect(res.body.data).toMatchObject({
id: expect.anything(),
name: 'folder 1',

View File

@ -31,7 +31,7 @@ describe('Dimensions are populated when uploading an image', () => {
formData: { files: fs.createReadStream(path.join(__dirname, `../utils/strapi${ext}`)) },
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body[0]).toMatchObject({
width: 256,
height: 256,

View File

@ -67,7 +67,7 @@ describe('Uploads folder', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
const { body: file } = await rqAdmin({
method: 'GET',
@ -102,7 +102,7 @@ describe('Uploads folder', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
const { body: file } = await rqAdmin({
method: 'GET',
@ -146,7 +146,7 @@ describe('Uploads folder', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
const { body: file } = await rqAdmin({
method: 'GET',
@ -308,7 +308,7 @@ describe('Uploads folder', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
const {
body: { results: files },
@ -370,7 +370,7 @@ describe('Uploads folder', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
const {
body: { results: files },
@ -425,7 +425,7 @@ describe('Uploads folder', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
const {
body: { results: files },
@ -486,7 +486,7 @@ describe('Uploads folder', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
const {
body: { results: files },

View File

@ -83,7 +83,7 @@ describe('Upload plugin', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(Array.isArray(res.body)).toBe(true);
expect(res.body.length).toBe(1);
expect(res.body[0]).toEqual(
@ -116,7 +116,7 @@ describe('Upload plugin', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(Array.isArray(res.body)).toBe(true);
expect(res.body.length).toBe(1);
expect(res.body[0]).toEqual(

View File

@ -76,7 +76,7 @@ describe('i18n - Content API', () => {
const { statusCode, body } = res;
expect(statusCode).toBe(200);
expect(statusCode).toBe(201);
expect(body.data).toMatchObject({
locale: 'en',
name: 'category in english',
@ -98,7 +98,7 @@ describe('i18n - Content API', () => {
const { statusCode, body } = res;
expect(statusCode).toBe(200);
expect(statusCode).toBe(201);
expect(body.data).toMatchObject({
locale: 'ko',
name: 'category in korean',
@ -125,12 +125,12 @@ describe('i18n - Content API', () => {
},
});
expect(res.statusCode).toBe(200);
expect(res.statusCode).toBe(201);
expect(res.body.data.locale).toBe(locale);
}
const { statusCode, body } = res;
expect(statusCode).toBe(200);
expect(statusCode).toBe(201);
data.categories.push(body.data);
});