generated from nhcarrigan/template
feat: run vitest on non-component files (#35)
### Explanation This gives us coverage for all of our non-rendering logic, so we can use Playwright E2E testing for the actual components. ### Issue _No response_ ### Attestations - [x] I have read and agree to the [Code of Conduct](https://docs.nhcarrigan.com/community/coc/) - [x] I have read and agree to the [Community Guidelines](https://docs.nhcarrigan.com/community/guide/). - [x] My contribution complies with the [Contributor Covenant](https://docs.nhcarrigan.com/dev/covenant/). ### Dependencies - [x] I have pinned the dependencies to a specific patch version. ### Style - [x] I have run the linter and resolved any errors. - [x] My pull request uses an appropriate title, matching the conventional commit standards. - [x] My scope of feat/fix/chore/etc. correctly matches the nature of changes in my pull request. ### Tests - [x] My contribution adds new code, and I have added tests to cover it. - [x] My contribution modifies existing code, and I have updated the tests to reflect these changes. - [x] All new and existing tests pass locally with my changes. - [x] Code coverage remains at or above the configured threshold. ### Documentation _No response_ ### Versioning Major - My pull request introduces a breaking change. Reviewed-on: https://codeberg.org/nhcarrigan/portfolio/pulls/35 Co-authored-by: Naomi Carrigan <commits@nhcarrigan.com> Co-committed-by: Naomi Carrigan <commits@nhcarrigan.com>
This commit is contained in:
38
test/icons/Codeberg.spec.ts
Normal file
38
test/icons/Codeberg.spec.ts
Normal file
@ -0,0 +1,38 @@
|
||||
/**
|
||||
* @copyright nhcarrigan
|
||||
* @license Naomi's Public License
|
||||
* @author Naomi Carrigan
|
||||
*/
|
||||
|
||||
import { describe, it, expect } from "vitest";
|
||||
import { Codeberg } from "../../src/icons/Codeberg";
|
||||
|
||||
describe("codeberg icon", () => {
|
||||
it("should have a valid width", () => {
|
||||
expect.assertions(1);
|
||||
expect(Codeberg.icon[0], "width is negative").toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
it("should have a valid height", () => {
|
||||
expect.assertions(1);
|
||||
expect(Codeberg.icon[1], "height is negative").toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
it("should not have any ligatures", () => {
|
||||
expect.assertions(1);
|
||||
expect(Codeberg.icon[2], "ligatures are present").toStrictEqual([]);
|
||||
});
|
||||
|
||||
it("should have a valid unicode set", () => {
|
||||
expect.assertions(1);
|
||||
expect(Codeberg.icon[3], "unicode set is wrong").toBe("U+E002");
|
||||
});
|
||||
|
||||
it("should have valid SVG path data", () => {
|
||||
expect.assertions(1);
|
||||
expect(Codeberg.icon[4], "path data is bad").toMatch(
|
||||
// eslint-disable-next-line stylistic/max-len
|
||||
/(?:[lm]\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))|(?:[hv]\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))|(?:c\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){5})|(?:q\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){3}(?:\s?t?\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))*)|(?:a\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){2}[\s,]?(?:[01][\s,]+){2}(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){2})|(?:s\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){3})|z/gi,
|
||||
);
|
||||
});
|
||||
});
|
38
test/icons/Coursera.spec.ts
Normal file
38
test/icons/Coursera.spec.ts
Normal file
@ -0,0 +1,38 @@
|
||||
/**
|
||||
* @copyright nhcarrigan
|
||||
* @license Naomi's Public License
|
||||
* @author Naomi Carrigan
|
||||
*/
|
||||
|
||||
import { describe, it, expect } from "vitest";
|
||||
import { Coursera } from "../../src/icons/Coursera";
|
||||
|
||||
describe("coursera icon", () => {
|
||||
it("should have a valid width", () => {
|
||||
expect.assertions(1);
|
||||
expect(Coursera.icon[0], "width is negative").toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
it("should have a valid height", () => {
|
||||
expect.assertions(1);
|
||||
expect(Coursera.icon[1], "height is negative").toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
it("should not have any ligatures", () => {
|
||||
expect.assertions(1);
|
||||
expect(Coursera.icon[2], "ligatures are present").toStrictEqual([]);
|
||||
});
|
||||
|
||||
it("should have a valid unicode set", () => {
|
||||
expect.assertions(1);
|
||||
expect(Coursera.icon[3], "unicode set is wrong").toBe("U+E002");
|
||||
});
|
||||
|
||||
it("should have valid SVG path data", () => {
|
||||
expect.assertions(1);
|
||||
expect(Coursera.icon[4], "path data is bad").toMatch(
|
||||
// eslint-disable-next-line stylistic/max-len
|
||||
/(?:[lm]\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))|(?:[hv]\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))|(?:c\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){5})|(?:q\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){3}(?:\s?t?\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))*)|(?:a\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){2}[\s,]?(?:[01][\s,]+){2}(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){2})|(?:s\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){3})|z/gi,
|
||||
);
|
||||
});
|
||||
});
|
38
test/icons/Fiverr.spec.ts
Normal file
38
test/icons/Fiverr.spec.ts
Normal file
@ -0,0 +1,38 @@
|
||||
/**
|
||||
* @copyright nhcarrigan
|
||||
* @license Naomi's Public License
|
||||
* @author Naomi Carrigan
|
||||
*/
|
||||
|
||||
import { describe, it, expect } from "vitest";
|
||||
import { Fiverr } from "../../src/icons/Fiverr";
|
||||
|
||||
describe("fiverr icon", () => {
|
||||
it("should have a valid width", () => {
|
||||
expect.assertions(1);
|
||||
expect(Fiverr.icon[0], "width is negative").toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
it("should have a valid height", () => {
|
||||
expect.assertions(1);
|
||||
expect(Fiverr.icon[1], "height is negative").toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
it("should not have any ligatures", () => {
|
||||
expect.assertions(1);
|
||||
expect(Fiverr.icon[2], "ligatures are present").toStrictEqual([]);
|
||||
});
|
||||
|
||||
it("should have a valid unicode set", () => {
|
||||
expect.assertions(1);
|
||||
expect(Fiverr.icon[3], "unicode set is wrong").toBe("U+E002");
|
||||
});
|
||||
|
||||
it("should have valid SVG path data", () => {
|
||||
expect.assertions(1);
|
||||
expect(Fiverr.icon[4], "path data is bad").toMatch(
|
||||
// eslint-disable-next-line stylistic/max-len
|
||||
/(?:[lm]\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))|(?:[hv]\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))|(?:c\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){5})|(?:q\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){3}(?:\s?t?\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))*)|(?:a\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){2}[\s,]?(?:[01][\s,]+){2}(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){2})|(?:s\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){3})|z/gi,
|
||||
);
|
||||
});
|
||||
});
|
38
test/icons/Gather.spec.ts
Normal file
38
test/icons/Gather.spec.ts
Normal file
@ -0,0 +1,38 @@
|
||||
/**
|
||||
* @copyright nhcarrigan
|
||||
* @license Naomi's Public License
|
||||
* @author Naomi Carrigan
|
||||
*/
|
||||
|
||||
import { describe, it, expect } from "vitest";
|
||||
import { Gather } from "../../src/icons/Gather";
|
||||
|
||||
describe("gather icon", () => {
|
||||
it("should have a valid width", () => {
|
||||
expect.assertions(1);
|
||||
expect(Gather.icon[0], "width is negative").toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
it("should have a valid height", () => {
|
||||
expect.assertions(1);
|
||||
expect(Gather.icon[1], "height is negative").toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
it("should not have any ligatures", () => {
|
||||
expect.assertions(1);
|
||||
expect(Gather.icon[2], "ligatures are present").toStrictEqual([]);
|
||||
});
|
||||
|
||||
it("should have a valid unicode set", () => {
|
||||
expect.assertions(1);
|
||||
expect(Gather.icon[3], "unicode set is wrong").toBe("U+E002");
|
||||
});
|
||||
|
||||
it("should have valid SVG path data", () => {
|
||||
expect.assertions(1);
|
||||
expect(Gather.icon[4], "path data is bad").toMatch(
|
||||
// eslint-disable-next-line stylistic/max-len
|
||||
/(?:[lm]\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))|(?:[hv]\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))|(?:c\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){5})|(?:q\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){3}(?:\s?t?\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))*)|(?:a\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){2}[\s,]?(?:[01][\s,]+){2}(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){2})|(?:s\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){3})|z/gi,
|
||||
);
|
||||
});
|
||||
});
|
38
test/icons/Gog.spec.ts
Normal file
38
test/icons/Gog.spec.ts
Normal file
@ -0,0 +1,38 @@
|
||||
/**
|
||||
* @copyright nhcarrigan
|
||||
* @license Naomi's Public License
|
||||
* @author Naomi Carrigan
|
||||
*/
|
||||
|
||||
import { describe, it, expect } from "vitest";
|
||||
import { Gog } from "../../src/icons/Gog";
|
||||
|
||||
describe("gog icon", () => {
|
||||
it("should have a valid width", () => {
|
||||
expect.assertions(1);
|
||||
expect(Gog.icon[0], "width is negative").toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
it("should have a valid height", () => {
|
||||
expect.assertions(1);
|
||||
expect(Gog.icon[1], "height is negative").toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
it("should not have any ligatures", () => {
|
||||
expect.assertions(1);
|
||||
expect(Gog.icon[2], "ligatures are present").toStrictEqual([]);
|
||||
});
|
||||
|
||||
it("should have a valid unicode set", () => {
|
||||
expect.assertions(1);
|
||||
expect(Gog.icon[3], "unicode set is wrong").toBe("U+E002");
|
||||
});
|
||||
|
||||
it("should have valid SVG path data", () => {
|
||||
expect.assertions(1);
|
||||
expect(Gog.icon[4], "path data is bad").toMatch(
|
||||
// eslint-disable-next-line stylistic/max-len
|
||||
/(?:[lm]\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))|(?:[hv]\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))|(?:c\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){5})|(?:q\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){3}(?:\s?t?\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))*)|(?:a\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){2}[\s,]?(?:[01][\s,]+){2}(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){2})|(?:s\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){3})|z/gi,
|
||||
);
|
||||
});
|
||||
});
|
38
test/icons/Kofi.spec.ts
Normal file
38
test/icons/Kofi.spec.ts
Normal file
@ -0,0 +1,38 @@
|
||||
/**
|
||||
* @copyright nhcarrigan
|
||||
* @license Naomi's Public License
|
||||
* @author Naomi Carrigan
|
||||
*/
|
||||
|
||||
import { describe, it, expect } from "vitest";
|
||||
import { Kofi } from "../../src/icons/KoFi";
|
||||
|
||||
describe("kofi icon", () => {
|
||||
it("should have a valid width", () => {
|
||||
expect.assertions(1);
|
||||
expect(Kofi.icon[0], "width is negative").toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
it("should have a valid height", () => {
|
||||
expect.assertions(1);
|
||||
expect(Kofi.icon[1], "height is negative").toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
it("should not have any ligatures", () => {
|
||||
expect.assertions(1);
|
||||
expect(Kofi.icon[2], "ligatures are present").toStrictEqual([]);
|
||||
});
|
||||
|
||||
it("should have a valid unicode set", () => {
|
||||
expect.assertions(1);
|
||||
expect(Kofi.icon[3], "unicode set is wrong").toBe("U+E002");
|
||||
});
|
||||
|
||||
it("should have valid SVG path data", () => {
|
||||
expect.assertions(1);
|
||||
expect(Kofi.icon[4], "path data is bad").toMatch(
|
||||
// eslint-disable-next-line stylistic/max-len
|
||||
/(?:[lm]\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))|(?:[hv]\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))|(?:c\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){5})|(?:q\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){3}(?:\s?t?\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))*)|(?:a\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){2}[\s,]?(?:[01][\s,]+){2}(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){2})|(?:s\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){3})|z/gi,
|
||||
);
|
||||
});
|
||||
});
|
38
test/icons/Matrix.spec.ts
Normal file
38
test/icons/Matrix.spec.ts
Normal file
@ -0,0 +1,38 @@
|
||||
/**
|
||||
* @copyright nhcarrigan
|
||||
* @license Naomi's Public License
|
||||
* @author Naomi Carrigan
|
||||
*/
|
||||
|
||||
import { describe, it, expect } from "vitest";
|
||||
import { Matrix } from "../../src/icons/Matrix";
|
||||
|
||||
describe("matrix icon", () => {
|
||||
it("should have a valid width", () => {
|
||||
expect.assertions(1);
|
||||
expect(Matrix.icon[0], "width is negative").toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
it("should have a valid height", () => {
|
||||
expect.assertions(1);
|
||||
expect(Matrix.icon[1], "height is negative").toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
it("should not have any ligatures", () => {
|
||||
expect.assertions(1);
|
||||
expect(Matrix.icon[2], "ligatures are present").toStrictEqual([]);
|
||||
});
|
||||
|
||||
it("should have a valid unicode set", () => {
|
||||
expect.assertions(1);
|
||||
expect(Matrix.icon[3], "unicode set is wrong").toBe("U+E002");
|
||||
});
|
||||
|
||||
it("should have valid SVG path data", () => {
|
||||
expect.assertions(1);
|
||||
expect(Matrix.icon[4], "path data is bad").toMatch(
|
||||
// eslint-disable-next-line stylistic/max-len
|
||||
/(?:[lm]\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))|(?:[hv]\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))|(?:c\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){5})|(?:q\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){3}(?:\s?t?\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))*)|(?:a\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){2}[\s,]?(?:[01][\s,]+){2}(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){2})|(?:s\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){3})|z/gi,
|
||||
);
|
||||
});
|
||||
});
|
38
test/icons/Peerlist.spec.ts
Normal file
38
test/icons/Peerlist.spec.ts
Normal file
@ -0,0 +1,38 @@
|
||||
/**
|
||||
* @copyright nhcarrigan
|
||||
* @license Naomi's Public License
|
||||
* @author Naomi Carrigan
|
||||
*/
|
||||
|
||||
import { describe, it, expect } from "vitest";
|
||||
import { Peerlist } from "../../src/icons/Peerlist";
|
||||
|
||||
describe("peerlist icon", () => {
|
||||
it("should have a valid width", () => {
|
||||
expect.assertions(1);
|
||||
expect(Peerlist.icon[0], "width is negative").toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
it("should have a valid height", () => {
|
||||
expect.assertions(1);
|
||||
expect(Peerlist.icon[1], "height is negative").toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
it("should not have any ligatures", () => {
|
||||
expect.assertions(1);
|
||||
expect(Peerlist.icon[2], "ligatures are present").toStrictEqual([]);
|
||||
});
|
||||
|
||||
it("should have a valid unicode set", () => {
|
||||
expect.assertions(1);
|
||||
expect(Peerlist.icon[3], "unicode set is wrong").toBe("U+E002");
|
||||
});
|
||||
|
||||
it("should have valid SVG path data", () => {
|
||||
expect.assertions(1);
|
||||
expect(Peerlist.icon[4], "path data is bad").toMatch(
|
||||
// eslint-disable-next-line stylistic/max-len
|
||||
/(?:[lm]\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))|(?:[hv]\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))|(?:c\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){5})|(?:q\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){3}(?:\s?t?\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))*)|(?:a\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){2}[\s,]?(?:[01][\s,]+){2}(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){2})|(?:s\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){3})|z/gi,
|
||||
);
|
||||
});
|
||||
});
|
38
test/icons/Pixiv.spec.ts
Normal file
38
test/icons/Pixiv.spec.ts
Normal file
@ -0,0 +1,38 @@
|
||||
/**
|
||||
* @copyright nhcarrigan
|
||||
* @license Naomi's Public License
|
||||
* @author Naomi Carrigan
|
||||
*/
|
||||
|
||||
import { describe, it, expect } from "vitest";
|
||||
import { Pixiv } from "../../src/icons/Pixiv";
|
||||
|
||||
describe("pixiv icon", () => {
|
||||
it("should have a valid width", () => {
|
||||
expect.assertions(1);
|
||||
expect(Pixiv.icon[0], "width is negative").toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
it("should have a valid height", () => {
|
||||
expect.assertions(1);
|
||||
expect(Pixiv.icon[1], "height is negative").toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
it("should not have any ligatures", () => {
|
||||
expect.assertions(1);
|
||||
expect(Pixiv.icon[2], "ligatures are present").toStrictEqual([]);
|
||||
});
|
||||
|
||||
it("should have a valid unicode set", () => {
|
||||
expect.assertions(1);
|
||||
expect(Pixiv.icon[3], "unicode set is wrong").toBe("U+E002");
|
||||
});
|
||||
|
||||
it("should have valid SVG path data", () => {
|
||||
expect.assertions(1);
|
||||
expect(Pixiv.icon[4], "path data is bad").toMatch(
|
||||
// eslint-disable-next-line stylistic/max-len
|
||||
/(?:[lm]\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))|(?:[hv]\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))|(?:c\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){5})|(?:q\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){3}(?:\s?t?\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))*)|(?:a\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){2}[\s,]?(?:[01][\s,]+){2}(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){2})|(?:s\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){3})|z/gi,
|
||||
);
|
||||
});
|
||||
});
|
38
test/icons/Polywork.spec.ts
Normal file
38
test/icons/Polywork.spec.ts
Normal file
@ -0,0 +1,38 @@
|
||||
/**
|
||||
* @copyright nhcarrigan
|
||||
* @license Naomi's Public License
|
||||
* @author Naomi Carrigan
|
||||
*/
|
||||
|
||||
import { describe, it, expect } from "vitest";
|
||||
import { Polywork } from "../../src/icons/Polywork";
|
||||
|
||||
describe("polywork icon", () => {
|
||||
it("should have a valid width", () => {
|
||||
expect.assertions(1);
|
||||
expect(Polywork.icon[0], "width is negative").toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
it("should have a valid height", () => {
|
||||
expect.assertions(1);
|
||||
expect(Polywork.icon[1], "height is negative").toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
it("should not have any ligatures", () => {
|
||||
expect.assertions(1);
|
||||
expect(Polywork.icon[2], "ligatures are present").toStrictEqual([]);
|
||||
});
|
||||
|
||||
it("should have a valid unicode set", () => {
|
||||
expect.assertions(1);
|
||||
expect(Polywork.icon[3], "unicode set is wrong").toBe("U+E002");
|
||||
});
|
||||
|
||||
it("should have valid SVG path data", () => {
|
||||
expect.assertions(1);
|
||||
expect(Polywork.icon[4], "path data is bad").toMatch(
|
||||
// eslint-disable-next-line stylistic/max-len
|
||||
/(?:[lm]\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))|(?:[hv]\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))|(?:c\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){5})|(?:q\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){3}(?:\s?t?\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))*)|(?:a\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){2}[\s,]?(?:[01][\s,]+){2}(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){2})|(?:s\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){3})|z/gi,
|
||||
);
|
||||
});
|
||||
});
|
38
test/icons/Saylor.spec.ts
Normal file
38
test/icons/Saylor.spec.ts
Normal file
@ -0,0 +1,38 @@
|
||||
/**
|
||||
* @copyright nhcarrigan
|
||||
* @license Naomi's Public License
|
||||
* @author Naomi Carrigan
|
||||
*/
|
||||
|
||||
import { describe, it, expect } from "vitest";
|
||||
import { Saylor } from "../../src/icons/Saylor";
|
||||
|
||||
describe("saylor icon", () => {
|
||||
it("should have a valid width", () => {
|
||||
expect.assertions(1);
|
||||
expect(Saylor.icon[0], "width is negative").toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
it("should have a valid height", () => {
|
||||
expect.assertions(1);
|
||||
expect(Saylor.icon[1], "height is negative").toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
it("should not have any ligatures", () => {
|
||||
expect.assertions(1);
|
||||
expect(Saylor.icon[2], "ligatures are present").toStrictEqual([]);
|
||||
});
|
||||
|
||||
it("should have a valid unicode set", () => {
|
||||
expect.assertions(1);
|
||||
expect(Saylor.icon[3], "unicode set is wrong").toBe("U+E002");
|
||||
});
|
||||
|
||||
it("should have valid SVG path data", () => {
|
||||
expect.assertions(1);
|
||||
expect(Saylor.icon[4], "path data is bad").toMatch(
|
||||
// eslint-disable-next-line stylistic/max-len
|
||||
/(?:[lm]\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))|(?:[hv]\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))|(?:c\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){5})|(?:q\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){3}(?:\s?t?\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))*)|(?:a\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){2}[\s,]?(?:[01][\s,]+){2}(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){2})|(?:s\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){3})|z/gi,
|
||||
);
|
||||
});
|
||||
});
|
38
test/icons/TeeSpring.spec.ts
Normal file
38
test/icons/TeeSpring.spec.ts
Normal file
@ -0,0 +1,38 @@
|
||||
/**
|
||||
* @copyright nhcarrigan
|
||||
* @license Naomi's Public License
|
||||
* @author Naomi Carrigan
|
||||
*/
|
||||
|
||||
import { describe, it, expect } from "vitest";
|
||||
import { TeeSpring } from "../../src/icons/TeeSpring";
|
||||
|
||||
describe("teespring icon", () => {
|
||||
it("should have a valid width", () => {
|
||||
expect.assertions(1);
|
||||
expect(TeeSpring.icon[0], "width is negative").toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
it("should have a valid height", () => {
|
||||
expect.assertions(1);
|
||||
expect(TeeSpring.icon[1], "height is negative").toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
it("should not have any ligatures", () => {
|
||||
expect.assertions(1);
|
||||
expect(TeeSpring.icon[2], "ligatures are present").toStrictEqual([]);
|
||||
});
|
||||
|
||||
it("should have a valid unicode set", () => {
|
||||
expect.assertions(1);
|
||||
expect(TeeSpring.icon[3], "unicode set is wrong").toBe("U+E002");
|
||||
});
|
||||
|
||||
it("should have valid SVG path data", () => {
|
||||
expect.assertions(1);
|
||||
expect(TeeSpring.icon[4], "path data is bad").toMatch(
|
||||
// eslint-disable-next-line stylistic/max-len
|
||||
/(?:[lm]\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))|(?:[hv]\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))|(?:c\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){5})|(?:q\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){3}(?:\s?t?\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))*)|(?:a\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){2}[\s,]?(?:[01][\s,]+){2}(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){2})|(?:s\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){3})|z/gi,
|
||||
);
|
||||
});
|
||||
});
|
38
test/icons/Throne.spec.ts
Normal file
38
test/icons/Throne.spec.ts
Normal file
@ -0,0 +1,38 @@
|
||||
/**
|
||||
* @copyright nhcarrigan
|
||||
* @license Naomi's Public License
|
||||
* @author Naomi Carrigan
|
||||
*/
|
||||
|
||||
import { describe, it, expect } from "vitest";
|
||||
import { Throne } from "../../src/icons/Throne";
|
||||
|
||||
describe("throne icon", () => {
|
||||
it("should have a valid width", () => {
|
||||
expect.assertions(1);
|
||||
expect(Throne.icon[0], "width is negative").toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
it("should have a valid height", () => {
|
||||
expect.assertions(1);
|
||||
expect(Throne.icon[1], "height is negative").toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
it("should not have any ligatures", () => {
|
||||
expect.assertions(1);
|
||||
expect(Throne.icon[2], "ligatures are present").toStrictEqual([]);
|
||||
});
|
||||
|
||||
it("should have a valid unicode set", () => {
|
||||
expect.assertions(1);
|
||||
expect(Throne.icon[3], "unicode set is wrong").toBe("U+E002");
|
||||
});
|
||||
|
||||
it("should have valid SVG path data", () => {
|
||||
expect.assertions(1);
|
||||
expect(Throne.icon[4], "path data is bad").toMatch(
|
||||
// eslint-disable-next-line stylistic/max-len
|
||||
/(?:[lm]\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))|(?:[hv]\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))|(?:c\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){5})|(?:q\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){3}(?:\s?t?\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))*)|(?:a\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){2}[\s,]?(?:[01][\s,]+){2}(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){2})|(?:s\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){3})|z/gi,
|
||||
);
|
||||
});
|
||||
});
|
38
test/icons/TreeNation.spec.ts
Normal file
38
test/icons/TreeNation.spec.ts
Normal file
@ -0,0 +1,38 @@
|
||||
/**
|
||||
* @copyright nhcarrigan
|
||||
* @license Naomi's Public License
|
||||
* @author Naomi Carrigan
|
||||
*/
|
||||
|
||||
import { describe, it, expect } from "vitest";
|
||||
import { TreeNation } from "../../src/icons/TreeNation";
|
||||
|
||||
describe("treenation icon", () => {
|
||||
it("should have a valid width", () => {
|
||||
expect.assertions(1);
|
||||
expect(TreeNation.icon[0], "width is negative").toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
it("should have a valid height", () => {
|
||||
expect.assertions(1);
|
||||
expect(TreeNation.icon[1], "height is negative").toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
it("should not have any ligatures", () => {
|
||||
expect.assertions(1);
|
||||
expect(TreeNation.icon[2], "ligatures are present").toStrictEqual([]);
|
||||
});
|
||||
|
||||
it("should have a valid unicode set", () => {
|
||||
expect.assertions(1);
|
||||
expect(TreeNation.icon[3], "unicode set is wrong").toBe("U+E002");
|
||||
});
|
||||
|
||||
it("should have valid SVG path data", () => {
|
||||
expect.assertions(1);
|
||||
expect(TreeNation.icon[4], "path data is bad").toMatch(
|
||||
// eslint-disable-next-line stylistic/max-len
|
||||
/(?:[lm]\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))|(?:[hv]\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))|(?:c\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){5})|(?:q\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){3}(?:\s?t?\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))*)|(?:a\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){2}[\s,]?(?:[01][\s,]+){2}(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){2})|(?:s\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){3})|z/gi,
|
||||
);
|
||||
});
|
||||
});
|
38
test/icons/Udemy.spec.ts
Normal file
38
test/icons/Udemy.spec.ts
Normal file
@ -0,0 +1,38 @@
|
||||
/**
|
||||
* @copyright nhcarrigan
|
||||
* @license Naomi's Public License
|
||||
* @author Naomi Carrigan
|
||||
*/
|
||||
|
||||
import { describe, it, expect } from "vitest";
|
||||
import { Udemy } from "../../src/icons/Udemy";
|
||||
|
||||
describe("udemy icon", () => {
|
||||
it("should have a valid width", () => {
|
||||
expect.assertions(1);
|
||||
expect(Udemy.icon[0], "width is negative").toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
it("should have a valid height", () => {
|
||||
expect.assertions(1);
|
||||
expect(Udemy.icon[1], "height is negative").toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
it("should not have any ligatures", () => {
|
||||
expect.assertions(1);
|
||||
expect(Udemy.icon[2], "ligatures are present").toStrictEqual([]);
|
||||
});
|
||||
|
||||
it("should have a valid unicode set", () => {
|
||||
expect.assertions(1);
|
||||
expect(Udemy.icon[3], "unicode set is wrong").toBe("U+E002");
|
||||
});
|
||||
|
||||
it("should have valid SVG path data", () => {
|
||||
expect.assertions(1);
|
||||
expect(Udemy.icon[4], "path data is bad").toMatch(
|
||||
// eslint-disable-next-line stylistic/max-len
|
||||
/(?:[lm]\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))|(?:[hv]\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))|(?:c\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){5})|(?:q\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){3}(?:\s?t?\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))*)|(?:a\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){2}[\s,]?(?:[01][\s,]+){2}(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){2})|(?:s\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){3})|z/gi,
|
||||
);
|
||||
});
|
||||
});
|
38
test/icons/VRoid.spec.ts
Normal file
38
test/icons/VRoid.spec.ts
Normal file
@ -0,0 +1,38 @@
|
||||
/**
|
||||
* @copyright nhcarrigan
|
||||
* @license Naomi's Public License
|
||||
* @author Naomi Carrigan
|
||||
*/
|
||||
|
||||
import { describe, it, expect } from "vitest";
|
||||
import { VRoid } from "../../src/icons/VRoid";
|
||||
|
||||
describe("vroid icon", () => {
|
||||
it("should have a valid width", () => {
|
||||
expect.assertions(1);
|
||||
expect(VRoid.icon[0], "width is negative").toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
it("should have a valid height", () => {
|
||||
expect.assertions(1);
|
||||
expect(VRoid.icon[1], "height is negative").toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
it("should not have any ligatures", () => {
|
||||
expect.assertions(1);
|
||||
expect(VRoid.icon[2], "ligatures are present").toStrictEqual([]);
|
||||
});
|
||||
|
||||
it("should have a valid unicode set", () => {
|
||||
expect.assertions(1);
|
||||
expect(VRoid.icon[3], "unicode set is wrong").toBe("U+E002");
|
||||
});
|
||||
|
||||
it("should have valid SVG path data", () => {
|
||||
expect.assertions(1);
|
||||
expect(VRoid.icon[4], "path data is bad").toMatch(
|
||||
// eslint-disable-next-line stylistic/max-len
|
||||
/(?:[lm]\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))|(?:[hv]\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))|(?:c\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){5})|(?:q\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){3}(?:\s?t?\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))*)|(?:a\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){2}[\s,]?(?:[01][\s,]+){2}(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){2})|(?:s\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){3})|z/gi,
|
||||
);
|
||||
});
|
||||
});
|
38
test/icons/Volunteer.spec.ts
Normal file
38
test/icons/Volunteer.spec.ts
Normal file
@ -0,0 +1,38 @@
|
||||
/**
|
||||
* @copyright nhcarrigan
|
||||
* @license Naomi's Public License
|
||||
* @author Naomi Carrigan
|
||||
*/
|
||||
|
||||
import { describe, it, expect } from "vitest";
|
||||
import { Volunteer } from "../../src/icons/Volunteer";
|
||||
|
||||
describe("volunteer icon", () => {
|
||||
it("should have a valid width", () => {
|
||||
expect.assertions(1);
|
||||
expect(Volunteer.icon[0], "width is negative").toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
it("should have a valid height", () => {
|
||||
expect.assertions(1);
|
||||
expect(Volunteer.icon[1], "height is negative").toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
it("should not have any ligatures", () => {
|
||||
expect.assertions(1);
|
||||
expect(Volunteer.icon[2], "ligatures are present").toStrictEqual([]);
|
||||
});
|
||||
|
||||
it("should have a valid unicode set", () => {
|
||||
expect.assertions(1);
|
||||
expect(Volunteer.icon[3], "unicode set is wrong").toBe("U+E002");
|
||||
});
|
||||
|
||||
it("should have valid SVG path data", () => {
|
||||
expect.assertions(1);
|
||||
expect(Volunteer.icon[4], "path data is bad").toMatch(
|
||||
// eslint-disable-next-line stylistic/max-len
|
||||
/(?:[lm]\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))|(?:[hv]\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))|(?:c\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){5})|(?:q\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){3}(?:\s?t?\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+)))*)|(?:a\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){2}[\s,]?(?:[01][\s,]+){2}(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){2})|(?:s\s?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))(?:[\s,]?-?(?:(?:\d+(?:\.\d+)?)|(?:\.\d+))){3})|z/gi,
|
||||
);
|
||||
});
|
||||
});
|
Reference in New Issue
Block a user