feat : fix anything you can think
CI / Verify (push) Successful in 1m4s
CI / Build immutable images and deploy (push) Successful in 1m35s

This commit is contained in:
2026-08-30 12:03:17 +00:00 Unverified
parent 6003f408bd
commit 89c27e230f
6 changed files with 74 additions and 20 deletions
+1 -1
View File
@@ -173,7 +173,7 @@ export async function processCatalogSyncJob(jobId: string): Promise<void> {
key: traveler.key,
name: traveler.name,
element: traveler.element,
rarity: 5,
rarity: traveler.rarity,
weaponType: "WEAPON_SWORD_ONE_HAND",
imageKey: `catalog/${version}/characters/${traveler.asset}`,
elementIconKey: `catalog/${version}/elements/${traveler.element.toLowerCase()}.png`,
+7 -1
View File
@@ -3,7 +3,7 @@ import { readFile } from "node:fs/promises";
import { join } from "node:path";
import { describe, expect, it } from "vitest";
import { customTravelers, isUpstreamTraveler } from "@/lib/catalog/travelers";
import { customTravelers, isCustomTravelerKey, isUpstreamTraveler } from "@/lib/catalog/travelers";
describe("custom Traveler catalog", () => {
it("blacklists every upstream Traveler spelling variant", () => {
@@ -24,4 +24,10 @@ describe("custom Traveler catalog", () => {
}));
expect(new Set(hashes).size).toBe(7);
});
it("marks every custom Traveler as a five-star character", () => {
expect(customTravelers.every((traveler) => traveler.rarity === 5)).toBe(true);
expect(isCustomTravelerKey("traveler_hydro")).toBe(true);
expect(isCustomTravelerKey("traveler_unknown")).toBe(false);
});
});
+11 -7
View File
@@ -1,13 +1,17 @@
export const customTravelers = [
{ key: "traveler_pyro", name: "Traveler Pyro", element: "Pyro", detailKey: "10000005_PYRO", asset: "traveler_pyro.webp" },
{ key: "traveler_hydro", name: "Traveler Hydro", element: "Hydro", detailKey: "10000005_HYDRO", asset: "traveler_hydro.webp" },
{ key: "traveler_anemo", name: "Traveler Anemo", element: "Anemo", detailKey: "10000005_ANEMO", asset: "traveler_anemo.webp" },
{ key: "traveler_geo", name: "Traveler Geo", element: "Geo", detailKey: "10000005_GEO", asset: "traveler_geo.webp" },
{ key: "traveler_electro", name: "Traveler Electro", element: "Electro", detailKey: "10000005_ELECTRO", asset: "traveler_electro.webp" },
{ key: "traveler_dendro", name: "Traveler Dendro", element: "Dendro", detailKey: "10000005_DENDRO", asset: "traveler_dendro.webp" },
{ key: "traveler_cryo", name: "Traveler Cryo", element: "Cryo", detailKey: "10000005_CRYO", asset: "traveler_cyro.webp" },
{ key: "traveler_pyro", name: "Traveler Pyro", element: "Pyro", rarity: 5, detailKey: "10000005_PYRO", asset: "traveler_pyro.webp" },
{ key: "traveler_hydro", name: "Traveler Hydro", element: "Hydro", rarity: 5, detailKey: "10000005_HYDRO", asset: "traveler_hydro.webp" },
{ key: "traveler_anemo", name: "Traveler Anemo", element: "Anemo", rarity: 5, detailKey: "10000005_ANEMO", asset: "traveler_anemo.webp" },
{ key: "traveler_geo", name: "Traveler Geo", element: "Geo", rarity: 5, detailKey: "10000005_GEO", asset: "traveler_geo.webp" },
{ key: "traveler_electro", name: "Traveler Electro", element: "Electro", rarity: 5, detailKey: "10000005_ELECTRO", asset: "traveler_electro.webp" },
{ key: "traveler_dendro", name: "Traveler Dendro", element: "Dendro", rarity: 5, detailKey: "10000005_DENDRO", asset: "traveler_dendro.webp" },
{ key: "traveler_cryo", name: "Traveler Cryo", element: "Cryo", rarity: 5, detailKey: "10000005_CRYO", asset: "traveler_cyro.webp" },
] as const;
export function isCustomTravelerKey(key: string): boolean {
return customTravelers.some((traveler) => traveler.key === key);
}
export function isUpstreamTraveler(name: string): boolean {
return name.trim().toLocaleLowerCase("en-US") === "traveler";
}