mirror of
https://github.com/phantomptr/ps5upload.git
synced 2026-10-22 03:42:55 -05:00
- The build rewrote start/end corners and positions with :lang(ar,fa,…) language lists, which Chromium before 141 (Android's WebView) drops: split buttons were square and start/end-placed controls sat wrong. Each list is now split into one language per check (postcss/langLists.mjs, run on the built CSS). - Home's action tiles stack the icon above the label on a phone; the labels broke mid-word. - Payloads' search box takes its own row on a phone instead of shrinking to nothing. - After Resend helper, pairing keeps checking for a minute, not 16 s. - Reverts the Android blur change: the doubled title was the emulator's software rendering, gone with its GPU on. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ub1mez9eaVtTF8pMEFXvA9
37 lines
1.4 KiB
TypeScript
37 lines
1.4 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
|
|
import { splitLangLists } from "./langLists.mjs";
|
|
|
|
const LIST = "ae,ar,arc,fa,he";
|
|
|
|
describe("splitLangLists", () => {
|
|
it("turns a negated language list into one check per shipped right-to-left language", () => {
|
|
const out = splitLangLists(`.rounded-s-full:not(:lang(${LIST})){border-top-left-radius:9px}`);
|
|
expect(out).toBe(
|
|
".rounded-s-full:not(:lang(ar)):not(:lang(fa)){border-top-left-radius:9px}",
|
|
);
|
|
});
|
|
|
|
it("gives a matching language list one selector per right-to-left language the app ships", () => {
|
|
const out = splitLangLists(`.end-3:lang(${LIST}){left:1rem}`);
|
|
expect(out).toBe(".end-3:lang(ar),.end-3:lang(fa){left:1rem}");
|
|
});
|
|
|
|
it("keeps the other selectors of the rule and leaves single languages alone", () => {
|
|
const out = splitLangLists(`.a:lang(${LIST}),.b{x:1}:root:lang(ar) .c{y:2}`);
|
|
expect(out).toBe(".a:lang(ar),.a:lang(fa),.b{x:1}:root:lang(ar) .c{y:2}");
|
|
});
|
|
|
|
it("drops a matching rule whose list holds none of the shipped languages", () => {
|
|
expect(splitLangLists(".x:lang(he,yi){a:1}.y{b:2}")).toBe(".y{b:2}");
|
|
});
|
|
});
|
|
|
|
describe("SHIPPED_RTL", () => {
|
|
it("names every right-to-left language the app can be set to", async () => {
|
|
const { SHIPPED_RTL } = await import("./langLists.mjs");
|
|
const { RTL_LANGS } = await import("../src/state/lang");
|
|
expect([...SHIPPED_RTL].sort()).toEqual([...RTL_LANGS].sort());
|
|
});
|
|
});
|