isolate api tests inside tests/api

This commit is contained in:
Elliot DeNolf
2020-10-08 04:50:33 -04:00
parent 64fef7d380
commit c599522e44
12 changed files with 284 additions and 11 deletions

View File

@@ -0,0 +1,269 @@
const checkRole = require('../access/checkRole');
const Email = require('../blocks/Email');
const Quote = require('../blocks/Quote');
const NumberBlock = require('../blocks/Number');
const CallToAction = require('../blocks/CallToAction');
const DefaultValueTest = {
slug: 'default-value-test',
labels: {
singular: 'Default Value Test',
plural: 'Default Value Tests',
},
admin: {
useAsTitle: 'text',
},
preview: (doc, token) => {
if (doc && doc.text) {
return `http://localhost:3000/previewable-posts/${doc.text.value}?preview=true&token=${token}`;
}
return null;
},
access: {
read: () => true,
},
fields: [
{
name: 'text',
type: 'text',
label: 'Text',
defaultValue: 'Default Value',
unique: true,
access: {
create: ({ req: { user } }) => checkRole(['admin'], user),
update: ({ req: { user } }) => checkRole(['admin'], user),
read: ({ req: { user } }) => Boolean(user),
},
},
{
name: 'image',
type: 'upload',
label: 'Image',
relationTo: 'media',
},
{
name: 'select',
label: 'Select',
type: 'select',
options: [{
value: 'option-1',
label: 'Option 1 Label',
}, {
value: 'option-2',
label: 'Option 2 Label',
}, {
value: 'option-3',
label: 'Option 3 Label',
}, {
value: 'option-4',
label: 'Option 4 Label',
}],
defaultValue: 'option-1',
},
{
name: 'selectMany',
label: 'Select w/ hasMany',
type: 'select',
options: [{
value: 'option-1',
label: 'Option 1 Label',
}, {
value: 'option-2',
label: 'Option 2 Label',
}, {
value: 'option-3',
label: 'Option 3 Label',
}, {
value: 'option-4',
label: 'Option 4 Label',
}],
defaultValue: ['option-1', 'option-4'],
hasMany: true,
},
{
name: 'radioGroupExample',
label: 'Radio Group Example',
type: 'radio',
options: [{
value: 'option-1',
label: 'Options 1 Label',
}, {
value: 'option-2',
label: 'Option 2 Label',
}, {
value: 'option-3',
label: 'Option 3 Label',
}],
defaultValue: 'option-2',
},
{
type: 'row',
fields: [
{
name: 'email',
label: 'Email',
type: 'email',
defaultValue: 'some@email.com',
}, {
name: 'number',
label: 'Number',
type: 'number',
defaultValue: 5,
},
],
},
{
type: 'group',
label: 'Group',
name: 'group',
fields: [
{
type: 'row',
fields: [
{
name: 'nestedText1',
label: 'Nested Text 1',
type: 'text',
defaultValue: 'nested default text 1',
}, {
name: 'nestedText2',
label: 'Nested Text 2',
type: 'text',
defaultValue: 'nested default text 2',
},
],
},
],
},
{
type: 'array',
label: 'Array',
name: 'array',
fields: [
{
type: 'row',
fields: [
{
name: 'arrayText1',
label: 'Array Text 1',
type: 'text',
admin: {
width: '50%',
},
defaultValue: 'default array text',
},
{
name: 'arrayText2',
label: 'Array Text 2',
type: 'text',
admin: {
width: '50%',
},
access: {
read: ({ req: { user } }) => Boolean(user),
update: ({ req: { user } }) => checkRole(['admin'], user),
},
},
],
},
{
type: 'text',
name: 'arrayText3',
label: 'Array Text 3',
admin: {
readOnly: true,
},
},
{
name: 'checkbox',
label: 'Checkbox',
type: 'checkbox',
default: true,
},
],
},
{
type: 'blocks',
label: 'Blocks Content',
name: 'blocks',
singularLabel: 'Block',
blocks: [Email, NumberBlock, Quote, CallToAction],
localized: true,
},
{
type: 'relationship',
label: 'Relationship to One Collection',
name: 'relationship',
relationTo: 'conditions',
},
{
type: 'relationship',
label: 'Relationship hasMany',
name: 'relationshipHasMany',
relationTo: 'localized-posts',
hasMany: true,
},
{
type: 'relationship',
label: 'Relationship to Multiple Collections',
name: 'relationshipMultipleCollections',
relationTo: ['localized-posts', 'conditions'],
},
{
type: 'textarea',
label: 'Textarea',
name: 'textarea',
defaultValue: 'my textarea text',
},
{
name: 'slug',
type: 'text',
label: 'Slug',
admin: {
position: 'sidebar',
},
localized: true,
unique: true,
defaultValue: 'my-slug',
},
{
name: 'checkbox',
type: 'checkbox',
label: 'Checkbox',
admin: {
position: 'sidebar',
},
defaultValue: true,
},
{
name: 'richText',
type: 'richText',
label: 'Rich Text',
admin: {
elements: [
'h1',
'h2',
'h3',
'h4',
'h5',
'h6',
'blockquote',
'ul',
'ol',
'link',
],
leaves: [
'bold',
'italic',
'underline',
'strikethrough',
],
},
// defaultValue: 'sooo riiiiiiiich',
},
],
timestamps: true,
};
module.exports = DefaultValueTest;

View File

@@ -1,8 +1,12 @@
module.exports = {
verbose: true,
testEnvironment: 'node',
globalSetup: '<rootDir>/src/tests/globalSetup.js',
globalTeardown: '<rootDir>/src/tests/globalTeardown.js',
globalSetup: '<rootDir>/src/tests/api/globalSetup.js',
globalTeardown: '<rootDir>/src/tests/api/globalTeardown.js',
testPathIgnorePatterns: [
'node_modules',
'src/client/*',
],
testTimeout: 15000,
moduleNameMapper: {
'\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': '<rootDir>/src/mocks/fileMock.js',

View File

@@ -1,6 +1,6 @@
require('isomorphic-fetch');
const faker = require('faker');
const { email, password } = require('../tests/credentials');
const { email, password } = require('../tests/api/credentials');
/**
* @jest-environment node

View File

@@ -5,7 +5,7 @@
const fetch = require('isomorphic-fetch');
const { request, GraphQLClient } = require('graphql-request');
const getConfig = require('../../../utilities/getConfig');
const { email, password } = require('../../../tests/credentials');
const { email, password } = require('../../../tests/api/credentials');
const config = getConfig();

View File

@@ -8,8 +8,8 @@ require('isomorphic-fetch');
const faker = require('faker');
const FormData = require('form-data');
const getConfig = require('../../utilities/getConfig');
const { email, password } = require('../../tests/credentials');
const fileExists = require('../../tests/utils/fileExists');
const { email, password } = require('../../tests/api/credentials');
const fileExists = require('../../tests/api/utils/fileExists');
const { serverURL: url } = getConfig();
@@ -657,7 +657,7 @@ describe('Collections - REST', () => {
it('create', async () => {
const formData = new FormData();
formData.append('file', fs.createReadStream(path.join(__dirname, '../..', 'tests/assets/image.png')));
formData.append('file', fs.createReadStream(path.join(__dirname, '../..', 'tests/api/assets/image.png')));
formData.append('alt', 'test media');
formData.append('locale', 'en');
@@ -690,7 +690,7 @@ describe('Collections - REST', () => {
it('delete', async () => {
const formData = new FormData();
formData.append('file', fs.createReadStream(path.join(__dirname, '../..', 'tests/assets/delete.png')));
formData.append('file', fs.createReadStream(path.join(__dirname, '../..', 'tests/api/assets/delete.png')));
formData.append('alt', 'test media');
formData.append('locale', 'en');

View File

@@ -4,7 +4,7 @@
require('isomorphic-fetch');
const getConfig = require('../../utilities/getConfig');
const { email, password } = require('../../tests/credentials');
const { email, password } = require('../../tests/api/credentials');
const { serverURL: url } = getConfig();

View File

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 88 KiB

View File

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 88 KiB

View File

@@ -1,7 +1,7 @@
require('isomorphic-fetch');
const server = require('../../demo/server');
const getConfig = require('../utilities/getConfig');
const server = require('../../../demo/server');
const getConfig = require('../../utilities/getConfig');
const { email, password } = require('./credentials');
const { serverURL } = getConfig();