chore: move to monorepo structure

This commit is contained in:
Alessio Gravili
2023-08-23 12:20:30 +02:00
parent e24ad67168
commit a67278b29f
1398 changed files with 2392 additions and 16005 deletions

View File

@@ -1,54 +0,0 @@
import { buildConfigWithDefaults } from '../buildConfigWithDefaults';
import { devUser } from '../credentials';
export default buildConfigWithDefaults({
collections: [
{
slug: 'arrays',
fields: [
{
name: 'arrayOfFields',
type: 'array',
admin: {
initCollapsed: true,
},
fields: [
{
type: 'text',
name: 'required',
required: true,
},
{
type: 'text',
name: 'optional',
},
{
name: 'innerArrayOfFields',
type: 'array',
fields: [
{
type: 'text',
name: 'required',
required: true,
},
{
type: 'text',
name: 'optional',
},
],
},
],
},
],
},
],
onInit: async (payload) => {
await payload.create({
collection: 'users',
data: {
email: devUser.email,
password: devUser.password,
},
});
},
});

View File

@@ -1,106 +0,0 @@
import { initPayloadTest } from '../helpers/configHelpers';
import payload from '../../src';
import configPromise from './config';
let collection: string;
describe('array-update', () => {
beforeAll(async () => {
const config = await configPromise;
collection = config.collections[0]?.slug;
await initPayloadTest({ __dirname });
});
afterAll(async () => {
if (typeof payload.db.destroy === 'function') {
await payload.db.destroy(payload);
}
});
it('should persist existing array-based data while updating and passing row ID', async () => {
const originalText = 'some optional text';
const doc = await payload.create({
collection,
data: {
arrayOfFields: [
{
required: 'a required field here',
optional: originalText,
},
{
required: 'another required field here',
optional: 'this is cool',
},
],
},
});
const arrayWithExistingValues = [...doc.arrayOfFields];
const updatedText = 'this is some new text for the first item in array';
arrayWithExistingValues[0] = {
id: arrayWithExistingValues[0].id,
required: updatedText,
};
const updatedDoc = await payload.update({
id: doc.id,
collection,
data: {
arrayOfFields: arrayWithExistingValues,
},
});
expect(updatedDoc.arrayOfFields?.[0]).toMatchObject({
required: updatedText,
optional: originalText,
});
});
it('should disregard existing array-based data while updating and NOT passing row ID', async () => {
const updatedText = 'here is some new text';
const secondArrayItem = {
required: 'test',
optional: 'optional test',
};
const doc = await payload.create({
collection,
data: {
arrayOfFields: [
{
required: 'a required field here',
optional: 'some optional text',
},
secondArrayItem,
],
},
});
const updatedDoc = await payload.update({
id: doc.id,
collection,
data: {
arrayOfFields: [
{
required: updatedText,
},
{
id: doc.arrayOfFields?.[1].id,
required: doc.arrayOfFields?.[1].required as string,
// NOTE - not passing optional field. It should persist
// because we're passing ID
},
],
},
});
expect(updatedDoc.arrayOfFields?.[0].required).toStrictEqual(updatedText);
expect(updatedDoc.arrayOfFields?.[0].optional).toBeUndefined();
expect(updatedDoc.arrayOfFields?.[1]).toMatchObject(secondArrayItem);
});
});

View File

@@ -1,36 +0,0 @@
/* tslint:disable */
/**
* This file was automatically generated by Payload.
* DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config,
* and re-run `payload generate:types` to regenerate this file.
*/
export interface Config {}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "arrays".
*/
export interface Array {
id: string;
array: {
required: string;
optional?: string;
id?: string;
}[];
createdAt: string;
updatedAt: string;
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "users".
*/
export interface User {
id: string;
email?: string;
resetPasswordToken?: string;
resetPasswordExpiration?: string;
loginAttempts?: number;
lockUntil?: string;
createdAt: string;
updatedAt: string;
}