mirror of
https://gitee.com/nocobase/nocobase.git
synced 2025-07-02 03:02:19 +08:00
Fix/snapshot (#1396)
* feat: snapshot field check add collectionName * feat: snapshot add test * fix: filterByTk * Update ResourceActionProvider.tsx --------- Co-authored-by: chenos <chenlinxh@gmail.com>
This commit is contained in:
parent
0d30366aba
commit
22339d9ef7
@ -0,0 +1,63 @@
|
|||||||
|
import { mockServer, MockServer } from '@nocobase/test';
|
||||||
|
import SnapshotFieldPlugin from '../server';
|
||||||
|
import path from 'path';
|
||||||
|
|
||||||
|
describe('actions', () => {
|
||||||
|
let app: MockServer;
|
||||||
|
|
||||||
|
beforeEach(async () => {
|
||||||
|
app = mockServer({
|
||||||
|
registerActions: true,
|
||||||
|
acl: false,
|
||||||
|
plugins: ['error-handler', 'users', 'ui-schema-storage', 'collection-manager'],
|
||||||
|
});
|
||||||
|
|
||||||
|
app.plugin(SnapshotFieldPlugin, { name: 'snapshot-field' });
|
||||||
|
|
||||||
|
await app.loadAndInstall({ clean: true });
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(async () => {
|
||||||
|
await app.cleanDb();
|
||||||
|
await app.destroy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it.only('fieldsHistory collectionName and name conflict between tables', async () => {
|
||||||
|
const agent = app.agent();
|
||||||
|
|
||||||
|
const field = {
|
||||||
|
name: 'status',
|
||||||
|
interface: 'input',
|
||||||
|
type: 'string',
|
||||||
|
uiSchema: { type: 'string', 'x-component': 'Input', title: 'status' },
|
||||||
|
};
|
||||||
|
|
||||||
|
await agent.resource('collections').create({
|
||||||
|
values: {
|
||||||
|
name: 'table_a',
|
||||||
|
template: 'general',
|
||||||
|
fields: [field],
|
||||||
|
title: 'table_a',
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
await agent.resource('collections').create({
|
||||||
|
values: {
|
||||||
|
name: 'table_b',
|
||||||
|
template: 'general',
|
||||||
|
fields: [field],
|
||||||
|
title: 'table_b',
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
await agent.resource('collections.fields', 'table_b').destroy({
|
||||||
|
filterByTk: 'status',
|
||||||
|
});
|
||||||
|
|
||||||
|
const { statusCode } = await agent.resource('collections.fields', 'table_b').create({
|
||||||
|
values: field,
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(statusCode).toBe(200);
|
||||||
|
});
|
||||||
|
});
|
@ -44,6 +44,7 @@ export class SnapshotFieldPlugin extends Plugin {
|
|||||||
const existField: Model = await fieldsHistoryRepository.findOne({
|
const existField: Model = await fieldsHistoryRepository.findOne({
|
||||||
filter: {
|
filter: {
|
||||||
name: fieldDoc.name,
|
name: fieldDoc.name,
|
||||||
|
collectionName: fieldDoc.collectionName,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
if (existField) {
|
if (existField) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user