mirror of
https://gitlab.com/PronounsPage/PronounsPage.git
synced 2025-09-24 21:46:22 -04:00
(test) check that pronouns/examples.tsv contains examples for plurals and honorifics if the locale is configured accordingly
This commit is contained in:
parent
9605b33154
commit
a707924dd7
@ -4,6 +4,8 @@ import allLocales from '../../locale/locales.ts';
|
||||
import { loadTsv } from '../../src/tsv.js';
|
||||
import { Example } from '../../src/classes.ts';
|
||||
import type { ExpectationResult } from 'expect';
|
||||
import { loadSumlFromBase } from '../../server/loader.ts';
|
||||
import type { Config } from '../../locale/config.ts';
|
||||
|
||||
const __dirname = new URL('.', import.meta.url).pathname;
|
||||
|
||||
@ -34,6 +36,10 @@ declare module 'expect' {
|
||||
expect.extend({ toHaveValidMorphemes });
|
||||
|
||||
describe.each(allLocales)('data files of $code', ({ code }) => {
|
||||
const config = loadSumlFromBase(`locale/${code}/config`) as Config;
|
||||
|
||||
const examples = loadTsv(`${__dirname}/../../locale/${code}/pronouns/examples.tsv`);
|
||||
|
||||
test('pronouns/pronouns.tsv match schema', async () => {
|
||||
const { default: MORPHEMES } = await import(`../../locale/${code}/pronouns/morphemes.js`);
|
||||
const pronouns = loadTsv(`${__dirname}/../../locale/${code}/pronouns/pronouns.tsv`);
|
||||
@ -56,7 +62,6 @@ describe.each(allLocales)('data files of $code', ({ code }) => {
|
||||
});
|
||||
test('pronouns/examples.tsv contain valid morphemes', async () => {
|
||||
const { default: MORPHEMES } = await import(`../../locale/${code}/pronouns/morphemes.js`);
|
||||
const examples = loadTsv(`${__dirname}/../../locale/${code}/pronouns/examples.tsv`);
|
||||
for (const example of examples) {
|
||||
expect(example.singular).toHaveValidMorphemes(MORPHEMES);
|
||||
if (example.plural) {
|
||||
@ -64,4 +69,14 @@ describe.each(allLocales)('data files of $code', ({ code }) => {
|
||||
}
|
||||
}
|
||||
});
|
||||
test('pronouns/examples.tsv contains plural examples when language has plurals', () => {
|
||||
const hasExamplesWithPlurals = examples.some((example) => {
|
||||
return example.plural && example.plural !== example.singular;
|
||||
});
|
||||
expect(hasExamplesWithPlurals).toBe(!!config.pronouns.plurals);
|
||||
});
|
||||
test('pronouns/examples.tsv contains honorific examples when language has honorifics', () => {
|
||||
const hasExamplesWithHonorifics = examples.some((example) => example.isHonorific);
|
||||
expect(hasExamplesWithHonorifics).toBe(!!config.pronouns.honorifics);
|
||||
});
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user