mirror of
https://gitee.com/nocobase/nocobase.git
synced 2025-07-02 03:02:19 +08:00
fix: filter target key with single item array
This commit is contained in:
parent
af9465e2c8
commit
416450d470
@ -0,0 +1,75 @@
|
|||||||
|
import Database, { mockDatabase } from '@nocobase/database';
|
||||||
|
|
||||||
|
describe('single filter target key', () => {
|
||||||
|
let db: Database;
|
||||||
|
|
||||||
|
beforeEach(async () => {
|
||||||
|
db = mockDatabase();
|
||||||
|
await db.clean({ drop: true });
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(async () => {
|
||||||
|
await db.close();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should update by filter target key', async () => {
|
||||||
|
const Student = db.collection({
|
||||||
|
name: 'students',
|
||||||
|
autoGenId: false,
|
||||||
|
filterTargetKey: ['name'],
|
||||||
|
fields: [
|
||||||
|
{
|
||||||
|
name: 'name',
|
||||||
|
type: 'string',
|
||||||
|
primaryKey: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'age',
|
||||||
|
type: 'integer',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
|
await db.sync();
|
||||||
|
|
||||||
|
const s1 = await Student.repository.create({
|
||||||
|
values: {
|
||||||
|
name: 's1',
|
||||||
|
age: 10,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const s2 = await Student.repository.create({
|
||||||
|
values: {
|
||||||
|
name: 's2',
|
||||||
|
age: 10,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const s3 = await Student.repository.create({
|
||||||
|
values: {
|
||||||
|
name: 's3',
|
||||||
|
age: 10,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
await Student.repository.update({
|
||||||
|
filter: {
|
||||||
|
name: 's3',
|
||||||
|
},
|
||||||
|
values: {
|
||||||
|
age: 20,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
await s3.reload();
|
||||||
|
|
||||||
|
expect(s3.age).toBe(20);
|
||||||
|
|
||||||
|
const s3Instance = await Student.repository.findOne({
|
||||||
|
filterByTk: 's3',
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(s3Instance.age).toBe(20);
|
||||||
|
});
|
||||||
|
});
|
@ -175,6 +175,10 @@ export class Collection<
|
|||||||
const targetKey = this.options?.filterTargetKey;
|
const targetKey = this.options?.filterTargetKey;
|
||||||
|
|
||||||
if (Array.isArray(targetKey)) {
|
if (Array.isArray(targetKey)) {
|
||||||
|
if (targetKey.length === 1) {
|
||||||
|
return targetKey[0];
|
||||||
|
}
|
||||||
|
|
||||||
return targetKey;
|
return targetKey;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user