forked from wangziqi/gongxue-base
feat: add scoreline dynamic filters
This commit is contained in:
@@ -3134,6 +3134,29 @@ async function testScoreline() {
|
||||
assert.ok(records.total >= 1, 'scoreline records should have data');
|
||||
assert.ok(records.items?.some(item => item.fieldValues?.minScore === 188), 'scoreline record should include dynamic field values');
|
||||
|
||||
const filteredRecords = await request('/api/scoreline/records', {
|
||||
query: { regionId: ids.region, 'field.minScore': 188, pageSize: 5 },
|
||||
});
|
||||
assert.ok(filteredRecords.total >= 1, 'scoreline dynamic exact field filter should return records');
|
||||
assert.ok(filteredRecords.items?.every(item => item.fieldValues?.minScore === 188), 'scoreline exact field filter should only return matching records');
|
||||
|
||||
const rangeFilteredRecords = await request('/api/scoreline/records', {
|
||||
query: { regionId: ids.region, 'min.minScore': 180, 'max.minScore': 190, pageSize: 5 },
|
||||
});
|
||||
assert.ok(rangeFilteredRecords.items?.some(item => item.fieldValues?.minScore === 188), 'scoreline dynamic range filter should return matching records');
|
||||
|
||||
const unknownField = await request('/api/scoreline/records', {
|
||||
query: { regionId: ids.region, 'field.unknownScore': 188 },
|
||||
expectStatus: 400,
|
||||
});
|
||||
assert.equal(unknownField.code, 'SCORELINE_FIELD_FILTER_NOT_ALLOWED', 'scoreline records should reject unknown dynamic field filters');
|
||||
|
||||
const unsafeField = await request('/api/scoreline/records', {
|
||||
query: { regionId: ids.region, 'field.minScore);drop': 188 },
|
||||
expectStatus: 400,
|
||||
});
|
||||
assert.equal(unsafeField.code, 'SCORELINE_FIELD_FILTER_KEY_INVALID', 'scoreline records should reject unsafe dynamic field filter keys');
|
||||
|
||||
const years = await request('/api/scoreline/years', { query: { regionId: ids.region } });
|
||||
assert.ok(years.items?.includes(2026), 'scoreline years should include 2026');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user