mirror of https://github.com/msgbyte/tailchat
feat(admin-next): support nickname#discriminator user search
parent
564c30914c
commit
7109e7ae0f
@ -0,0 +1,36 @@
|
||||
import test from 'node:test';
|
||||
import assert from 'node:assert/strict';
|
||||
import parseQuery from './parseQuery';
|
||||
|
||||
const model: any = { schema: { path: () => ({ cast: (v: any) => v }) } };
|
||||
const uniqueName = (q: string) => {
|
||||
const [nickname, discriminator] = q.split('#');
|
||||
return discriminator ? { nickname, discriminator } : undefined;
|
||||
};
|
||||
|
||||
test('adds nickname#discriminator match to $or', () => {
|
||||
const result = parseQuery(
|
||||
{ q: 'admin#6485' },
|
||||
model,
|
||||
['nickname'],
|
||||
['nickname', 'email'],
|
||||
uniqueName
|
||||
);
|
||||
assert.equal(result.q, undefined);
|
||||
assert.deepEqual(result.$or.at(-1), {
|
||||
nickname: 'admin',
|
||||
discriminator: '6485',
|
||||
});
|
||||
});
|
||||
|
||||
test('keeps plain search unchanged without #', () => {
|
||||
const result = parseQuery(
|
||||
{ q: 'admin' },
|
||||
model,
|
||||
['nickname'],
|
||||
['nickname', 'email'],
|
||||
uniqueName
|
||||
);
|
||||
assert.equal(result.$or.length, 2);
|
||||
assert.deepEqual(result.$or[1], { email: 'admin' });
|
||||
});
|
||||
Loading…
Reference in New Issue