Files
bitburner-src/test/jest/JsonSchema/HexColorRegex.test.ts

92 lines
1.9 KiB
TypeScript

import { editorThemeHexColorRegex, themeHexColorRegex } from "../../../src/JsonSchema/Data/ThemeSchema";
const validThemeHexColors = ["#FF0011", "#FF001122", "#FFF"];
const invalidThemeHexColors = [
"qwe",
"",
"0",
String(null),
String(undefined),
String(NaN),
String(Infinity),
"FF0011",
"FF001122",
"FFF",
"#F",
"F",
"#FF",
"FF",
"#FFFF",
"FFFF",
"#FFFFF",
"FFFFF",
"#FF00112",
"FF00112",
"##FF0011",
"##FFF",
];
const validEditorThemeHexColors = ["FF0011", "FF001122", "FFF"];
const invalidEditorThemeHexColors = [
"qwe",
"",
"0",
String(null),
String(undefined),
String(NaN),
String(Infinity),
"#FF0011",
"#FF001122",
"#FFF",
"#F",
"F",
"#FF",
"FF",
"#FFFF",
"FFFF",
"#FFFFF",
"FFFFF",
"#FF00112",
"FF00112",
"##FF0011",
"##FFF",
];
describe("Theme", () => {
describe("Valid", () => {
for (const validHexColor of validThemeHexColors) {
test(`Theme: Valid: ${validHexColor}`, () => {
expect(themeHexColorRegex.test(validHexColor)).toStrictEqual(true);
});
}
});
describe("Invalid", () => {
for (const invalidHexColor of invalidThemeHexColors) {
test(`Theme: Invalid: ${invalidHexColor}`, () => {
expect(themeHexColorRegex.test(invalidHexColor)).toStrictEqual(false);
});
}
});
});
describe("Editor theme", () => {
describe("Valid", () => {
for (const validHexColor of validEditorThemeHexColors) {
test(`Editor theme: Valid: ${validHexColor}`, () => {
expect(editorThemeHexColorRegex.test(validHexColor)).toStrictEqual(true);
});
}
});
describe("Invalid", () => {
for (const invalidHexColor of invalidEditorThemeHexColors) {
test(`Editor theme: Invalid: ${invalidHexColor}`, () => {
expect(editorThemeHexColorRegex.test(invalidHexColor)).toStrictEqual(false);
});
}
});
});