mirror of
https://github.com/kou029w/jwk.pages.dev.git
synced 2025-01-30 22:08:01 +00:00
43 lines
2.3 KiB
TypeScript
43 lines
2.3 KiB
TypeScript
import { test, expect } from "@playwright/test";
|
|
|
|
// prettier-ignore
|
|
const properties = {
|
|
"ECDSA (ES256)": ["alg", "use", "kid", "kty", "crv", "x", "y", "d"],
|
|
"ECDSA (ES384)": ["alg", "use", "kid", "kty", "crv", "x", "y", "d"],
|
|
"ECDSA (ES512)": ["alg", "use", "kid", "kty", "crv", "x", "y", "d"],
|
|
"RSASSA-PKCS1-v1_5 (RS256)": ["alg", "use", "kid", "kty", "e", "n", "d", "p", "q", "dp", "dq", "qi"],
|
|
"RSASSA-PKCS1-v1_5 (RS384)": ["alg", "use", "kid", "kty", "e", "n", "d", "p", "q", "dp", "dq", "qi"],
|
|
"RSASSA-PKCS1-v1_5 (RS512)": ["alg", "use", "kid", "kty", "e", "n", "d", "p", "q", "dp", "dq", "qi"],
|
|
"RSASSA-PSS (PS256)": ["alg", "use", "kid", "kty", "e", "n", "d", "p", "q", "dp", "dq", "qi"],
|
|
"RSASSA-PSS (PS384)": ["alg", "use", "kid", "kty", "e", "n", "d", "p", "q", "dp", "dq", "qi"],
|
|
"RSASSA-PSS (PS512)": ["alg", "use", "kid", "kty", "e", "n", "d", "p", "q", "dp", "dq", "qi"],
|
|
"ECDH-ES": ["alg", "use", "kid", "kty", "crv", "x", "y", "d"],
|
|
"ECDH-ES+A128KW": ["alg", "use", "kid", "kty", "crv", "x", "y", "d"],
|
|
"ECDH-ES+A192KW": ["alg", "use", "kid", "kty", "crv", "x", "y", "d"],
|
|
"ECDH-ES+A256KW": ["alg", "use", "kid", "kty", "crv", "x", "y", "d"],
|
|
"RSA-OAEP": ["alg", "use", "kid", "kty", "e", "n", "d", "p", "q", "dp", "dq", "qi"],
|
|
"RSA-OAEP-256": ["alg", "use", "kid", "kty", "e", "n", "d", "p", "q", "dp", "dq", "qi"],
|
|
"RSA-OAEP-384": ["alg", "use", "kid", "kty", "e", "n", "d", "p", "q", "dp", "dq", "qi"],
|
|
"RSA-OAEP-512": ["alg", "use", "kid", "kty", "e", "n", "d", "p", "q", "dp", "dq", "qi"],
|
|
};
|
|
// prettier-ignore-end
|
|
|
|
for (const [algorithm, expected] of Object.entries(properties)) {
|
|
test(`${algorithm} has ${expected}`, async ({ page }) => {
|
|
await page.goto("/");
|
|
await page.getByLabel("Algorithm").selectOption({ label: algorithm });
|
|
await page.getByLabel("Generate").click();
|
|
|
|
const jwk = await page
|
|
.getByLabel("Private Key")
|
|
.getByText(/./)
|
|
.inputValue()
|
|
.then(JSON.parse);
|
|
|
|
for (const property of expected) {
|
|
expect(jwk).toHaveProperty(property, expect.stringMatching(/./));
|
|
}
|
|
|
|
expect(Object.keys(jwk)).toHaveLength(expected.length);
|
|
});
|
|
}
|