Files
buzz-sheet/lib/image-export/fixtures.ts
T

248 lines
6.1 KiB
TypeScript

// Representative data for export renderer regression tests.
import type { PublicGuide } from "@/lib/guides/queries";
import type { ExportRequest } from "./types";
const character = {
key: "raiden",
name: "Raiden Shogun",
element: "Electro",
rarity: 5,
weaponType: "Polearm",
imageUrl: "/test-art.png",
splashImageUrl: "/test-art.png",
nameCardImageUrl: null,
baseStats: [
{ key: "hp", value: 12907 },
{ key: "atk", value: 337 },
],
ascension: [
{
items: [
{
key: "material",
name: "Ascension Material",
amount: 168,
imageUrl: "/test-art.png",
},
],
},
],
leveling: [],
talents: [
{ type: "E", name: "Skill", iconUrl: null },
{ type: "Q", name: "Burst", iconUrl: null },
],
};
export const exportGuide = {
name: "Raiden",
character,
coverUrl: "/test-art.png",
elementIconUrls: {},
artifactGroups: [
{
id: "a",
name: "Late Game",
rows: [
{
id: "r",
first: {
key: "emblem",
name: "Emblem",
imageUrl: "/test-art.png",
rarity: 5,
},
second: null,
percent: "100",
note: "อันดับภาษาไทย",
},
],
},
],
artifactProfile: {
note: "โน้ตโปรไฟล์",
recommendedConditions: [
{
name: "First",
note: "โน้ตออฟ",
sands: ["ATK%"],
goblet: ["Electro DMG%"],
circlet: ["CRIT RATE"],
substats: ["CRIT RATE", "ER"],
},
{
name: "Second",
note: null,
sands: ["ER"],
goblet: ["ATK%"],
circlet: ["CRIT DAMAGE"],
substats: ["ER"],
},
],
targetConditions: [
{
name: "First",
note: "เป้าหมาย",
rows: [{ stat: "ER", value: "250%" }],
},
{ name: "Second", note: null, rows: [{ stat: "ATK", value: "2000" }] },
],
talents: [
{ type: "Q", level: 9, relationToNext: "gt" },
{ type: "E", level: 9, relationToNext: "gt" },
],
},
} as unknown as PublicGuide;
export const exportFixtures: ExportRequest[] = [
{
kind: "constellation",
width: 1500,
height: 1500,
format: "png",
data: {
guide: exportGuide,
group: {
id: "c",
name: "Team",
note: "โน้ตภาษาไทย",
rows: [
{ level: 1, cumulativePercent: "115.5", isGreat: true },
{ level: 6, cumulativePercent: "200", isGreat: false },
],
} as unknown as PublicGuide["constellationGroups"][number],
},
},
{
kind: "weapon",
width: 1200,
format: "png",
data: {
guide: exportGuide,
metric: "overallPercent",
conditionLabel: "Condition 1",
group: {
id: "w",
name: "Weapons",
note: "โน้ตอาวุธ",
rows: [
{
id: "1",
weapon: { name: "Engulfing Lightning", imageUrl: "/test-art.png" },
refinement: 1,
overallPercent: "115",
personalPercent: "120",
note: "คำอธิบายภาษาไทย",
},
{
id: "2",
weapon: { name: "The Catch", imageUrl: "/test-art.png" },
refinement: 5,
overallPercent: null,
personalPercent: "100",
note: null,
},
],
} as unknown as PublicGuide["weaponGroups"][number],
},
},
{
kind: "team",
width: 1080,
format: "png",
data: {
team: {
title: "Raiden National",
rotationSeconds: "20",
combo: "E → Q\nตัวอย่างคอมโบ",
members: [1, 2, 3, 4].map((position) => ({
position,
character,
weapon:
position === 1
? {
name: "Engulfing Lightning",
imageUrl: "/test-art.png",
rarity: 5,
}
: null,
artifact:
position === 1
? {
key: "emblem",
name: "Emblem",
imageUrl: "/test-art.png",
rarity: 5,
}
: null,
secondArtifact:
position === 1
? {
key: "noblesse",
name: "Noblesse",
imageUrl: "/test-art.png",
rarity: 5,
}
: null,
constellation: 0,
refinement: 1,
damage: "100000",
})),
} as unknown as PublicGuide["teams"][number],
},
},
{
kind: "materials",
width: 1600,
height: 2000,
format: "png",
data: {
character: exportGuide.character,
characterArtUrl: "/test-art.png",
artworkOffsetX: 10,
artworkOffsetY: -5,
artworkScale: 120,
topColors: ["#ffbb00", "#112233"],
bottomColors: ["#112233", "#ffbb00"],
bleeding: [{ id: "1", imageUrl: null, amount: 20, blendMode: "screen" }],
},
},
{
kind: "overview",
width: 3000,
height: 3000,
format: "png",
data: {
character: character as unknown as PublicGuide["character"],
artworkUrl: "/test-art.png",
role: "Main DPS",
topColors: ["#ffbb00", "#112233"],
bottomColors: ["#112233", "#ffbb00"],
elementColors: ["#aa00ff", "#ff00aa"],
elementGradientAngle: 90,
blendLayers: [{ id: 1, amount: 20, mode: "screen" }],
nameCardCrop: null,
nameCardSize: null,
elementIconUrls: { Electro: "/test-art.png" },
composition: {
backgroundUrl: null,
fadeColor: "#0e0200",
fadeTint: 20,
auraUpOffset: 0,
characterOffset: { x: 5, y: 0 },
fadeOffset: { x: 0, y: 0 },
},
disclaimerFontSize: null,
},
},
{
kind: "artifact",
width: 1200,
format: "png",
data: {
guide: exportGuide,
sections: ["tierlist", "best-stats", "target-stats", "talents"],
recommendedCondition: 0,
targetCondition: 0,
includeNote: true,
},
},
];