diff --git a/app/game-api/test/reservedTurns.test.ts b/app/game-api/test/reservedTurns.test.ts index ea64eec..570f4a8 100644 --- a/app/game-api/test/reservedTurns.test.ts +++ b/app/game-api/test/reservedTurns.test.ts @@ -17,14 +17,10 @@ const buildDb = () => { type GeneralTurnFindManyArgs = Parameters[0]; type GeneralTurnDeleteManyArgs = NonNullable[0]>; type GeneralTurnCreateManyArgs = NonNullable[0]>; - type GeneralTurnCreateManyData = GeneralTurnCreateManyArgs['data']; - type GeneralTurnCreateManyRow = GeneralTurnCreateManyData extends Array ? Row : never; type NationTurnFindManyArgs = Parameters[0]; type NationTurnDeleteManyArgs = NonNullable[0]>; type NationTurnCreateManyArgs = NonNullable[0]>; - type NationTurnCreateManyData = NationTurnCreateManyArgs['data']; - type NationTurnCreateManyRow = NationTurnCreateManyData extends Array ? Row : never; const db = { worldState: { @@ -45,20 +41,23 @@ const buildDb = () => { return generalId !== undefined ? (generalTurns.get(generalId) ?? []) : []; }, deleteMany: async ({ where }: GeneralTurnDeleteManyArgs) => { - if (typeof where.generalId === 'number') { + if (where && typeof where.generalId === 'number') { generalTurns.delete(where.generalId); } return {}; }, createMany: async ({ data }: GeneralTurnCreateManyArgs) => { - const rows = data.map((row: GeneralTurnCreateManyRow, index: number) => ({ + const dataList = (Array.isArray(data) ? data : [data]) as Record[]; + const rows: GeneralTurnRow[] = dataList.map((row, index: number) => ({ id: index + 1, - generalId: row.generalId, - turnIdx: row.turnIdx, - actionCode: row.actionCode, - arg: row.arg, + generalId: row.generalId as number, + turnIdx: row.turnIdx as number, + actionCode: row.actionCode as string, + arg: row.arg as unknown as GeneralTurnRow['arg'], + createdAt: new Date(), })); - const generalId = data[0]?.generalId; + const firstRow = dataList[0]; + const generalId = firstRow?.generalId as number | undefined; if (generalId !== undefined) { generalTurns.set(generalId, rows); } @@ -76,22 +75,25 @@ const buildDb = () => { return nationTurns.get(`${nationId}:${officerLevel}`) ?? []; }, deleteMany: async ({ where }: NationTurnDeleteManyArgs) => { - if (typeof where.nationId === 'number' && typeof where.officerLevel === 'number') { + if (where && typeof where.nationId === 'number' && typeof where.officerLevel === 'number') { nationTurns.delete(`${where.nationId}:${where.officerLevel}`); } return {}; }, createMany: async ({ data }: NationTurnCreateManyArgs) => { - const rows = data.map((row: NationTurnCreateManyRow, index: number) => ({ + const dataList = (Array.isArray(data) ? data : [data]) as Record[]; + const rows: NationTurnRow[] = dataList.map((row, index: number) => ({ id: index + 1, - nationId: row.nationId, - officerLevel: row.officerLevel, - turnIdx: row.turnIdx, - actionCode: row.actionCode, - arg: row.arg, + nationId: row.nationId as number, + officerLevel: row.officerLevel as number, + turnIdx: row.turnIdx as number, + actionCode: row.actionCode as string, + arg: row.arg as unknown as NationTurnRow['arg'], + createdAt: new Date(), })); - const nationId = data[0]?.nationId; - const officerLevel = data[0]?.officerLevel; + const firstRow = dataList[0]; + const nationId = firstRow?.nationId as number | undefined; + const officerLevel = firstRow?.officerLevel as number | undefined; if (nationId !== undefined && officerLevel !== undefined) { nationTurns.set(`${nationId}:${officerLevel}`, rows); } diff --git a/app/gateway-frontend/src/views/LobbyView.vue b/app/gateway-frontend/src/views/LobbyView.vue index 7ee2579..2dae6ad 100644 --- a/app/gateway-frontend/src/views/LobbyView.vue +++ b/app/gateway-frontend/src/views/LobbyView.vue @@ -60,6 +60,7 @@ const handleLogout = async () => {
+
@@ -91,15 +92,15 @@ const handleLogout = async () => { :style="{ color: profile.color }" class="text-lg font-bold cursor-help" :title=" - profileDetails[profile.profileName] - ? `시작일: ${profileDetails[profile.profileName].starttime}` + profileDetails[profile.profileName]?.starttime + ? `시작일: ${profileDetails[profile.profileName]?.starttime}` : '' " > {{ profile.korName }}섭
- <{{ profileDetails[profile.profileName].nationCnt }}국 경쟁중> + <{{ profileDetails[profile.profileName]?.nationCnt }}국 경쟁중>
@@ -108,25 +109,25 @@ const handleLogout = async () => { @@ -145,14 +146,14 @@ const handleLogout = async () => { class="w-12 h-12 mx-auto bg-zinc-800 rounded overflow-hidden border border-zinc-700" >
- {{ profileDetails[profile.profileName].myGeneral.name }} + {{ profileDetails[profile.profileName]?.myGeneral?.name }}
- 미 등 록 -
@@ -161,7 +162,7 @@ const handleLogout = async () => {