strapi/api-tests/core/content-manager/fields/non-visible.test.api.js
Marc Roig ff8ed1fc36
feat: Draft & Publish V5 (#18941)
* feat: use document service in content manager
* feat: locale and status filtering
* feat: refactor single type controllers to use documents
* feat: get locale param from in cm endpoints
* feat: get locale param from cm endpoints
* feat: prevent empty string locale filtering
* fix(content-manager): access to non default locale documents
* chore(content-manager): revert route construction
* test(content-manager): counting number of draft relations for non default locales
* chore(content-manager): remove default locale from entity manager countDraftRelations


---------

Co-authored-by: Ben Irvin <ben@innerdvations.com>
Co-authored-by: Jamie Howard <48524071+jhoward1994@users.noreply.github.com>
Co-authored-by: Josh <37798644+joshuaellis@users.noreply.github.com>
2024-01-25 18:43:08 +01:00

114 lines
3.0 KiB
JavaScript

/**
* This test will use non visible fields and validate they can be filtered and sorted by
*/
'use strict';
const { createTestBuilder } = require('api-tests/builder');
const { createStrapiInstance } = require('api-tests/strapi');
const { createAuthRequest } = require('api-tests/request');
const { createUtils } = require('api-tests/utils');
const builder = createTestBuilder();
const ct = {
displayName: 'nonvisible',
singularName: 'nonvisible',
pluralName: 'nonvisibles',
attributes: {
field: {
type: 'string',
visible: false,
writable: true,
},
name: {
type: 'string',
},
},
};
let rq1;
let rq2;
let user1;
let user2;
let strapi;
let utils;
const createEntry = async (data) => {
return strapi.entityService.create('api::nonvisible.nonvisible', {
data,
});
};
/**
* == Test Suite Overview ==
*
* N° Description
* -------------------------------------------
* 1. Filters by non visible field (successfully)
* 2. Filters by created_by (successfully)
* 3. Filters by updated_by (successfully)
*/
// TODO: Fix document service validations
describe.skip('Test non visible fields', () => {
beforeAll(async () => {
await builder.addContentType(ct).build();
strapi = await createStrapiInstance();
utils = createUtils(strapi);
const userInfo = {
email: 'test@strapi.io',
firstname: 'test',
lastname: 'strapi',
registrationToken: 'foobar',
roles: [await utils.getSuperAdminRole()],
};
user1 = await utils.createUser(userInfo);
user2 = await utils.createUser({ ...userInfo, email: 'test2@strapi.io' });
rq1 = await createAuthRequest({ strapi, userInfo: user1 });
rq2 = await createAuthRequest({ strapi, userInfo: user2 });
await createEntry({ field: 'entry1', createdBy: user1.id, updatedBy: user1.id });
await createEntry({ field: 'entry2', createdBy: user2.id, updatedBy: user2.id });
});
afterAll(async () => {
await strapi.destroy();
await builder.cleanup();
});
test('User can filter by non visible and writable fields ', async () => {
const res = await rq1.get(
`/content-manager/collection-types/api::nonvisible.nonvisible?filters[field][$eq]=entry1`
);
expect(res.statusCode).toBe(200);
expect(res.body.results.length).toBe(1);
expect(res.body.results[0].field).toBe('entry1');
});
test('User can filter by createdBy field ', async () => {
const res = await rq1.get(
`/content-manager/collection-types/api::nonvisible.nonvisible?filters[createdBy][id][$eq]=${user1.id}`
);
expect(res.statusCode).toBe(200);
expect(res.body.results.length).toBe(1);
expect(res.body.results[0].createdBy.id).toBe(user1.id);
});
test('User can filter by updatedBy field ', async () => {
const res = await rq1.get(
`/content-manager/collection-types/api::nonvisible.nonvisible?filters[updatedBy][id][$eq]=${user1.id}`
);
expect(res.statusCode).toBe(200);
expect(res.body.results.length).toBe(1);
expect(res.body.results[0].updatedBy.id).toBe(user1.id);
});
});