This commit is contained in:
2026-06-13 10:47:59 +08:00
parent b19c811048
commit f9311292cc
5 changed files with 97 additions and 54 deletions

View File

@@ -0,0 +1,42 @@
import assert from 'node:assert/strict';
import { buildVocabularySummaryFilters } from './vocabularyAuditFilters';
const correctWordFilter = buildVocabularySummaryFilters({ minCorrectWords: '40' });
assert.deepEqual(correctWordFilter, {
minCorrectWords: 40,
userMatchStages: [],
baseMatch: {
'stats.correctWords': { $gte: 40 }
}
});
const legacyFilter = buildVocabularySummaryFilters({ minWords: '35' });
assert.deepEqual(legacyFilter, {
minCorrectWords: 35,
userMatchStages: [],
baseMatch: {
'stats.correctWords': { $gte: 35 }
}
});
const emptyFilter = buildVocabularySummaryFilters({});
assert.deepEqual(emptyFilter, {
minCorrectWords: undefined,
userMatchStages: [],
baseMatch: {}
});
const studentFilter = buildVocabularySummaryFilters({ studentNo: 'A.12' });
assert.deepEqual(studentFilter.userMatchStages, [{
$match: {
'user.username': {
$regex: 'A\\.12',
$options: 'i'
}
}
}]);
const invalidFilter = buildVocabularySummaryFilters({ minCorrectWords: '4.5' });
assert.deepEqual(invalidFilter, { error: '正确单词数量必须是正整数' });
console.log('vocabularyAuditFilters tests passed');