This commit is contained in:
@@ -60,4 +60,51 @@ describe("local turn adapter", () => {
|
||||
expect(advanced.playerView.branchId).toBe(initialView.branchId);
|
||||
expect(advanced.playerView.nodeId).toBe("node_002");
|
||||
});
|
||||
|
||||
it("plays the promise, hidden-search clue, tunnel, and return vertical slice", async () => {
|
||||
const promise = await submitDemoTurn(
|
||||
{
|
||||
...request("speak_or_act", "我答应你,天亮前一定回来。"),
|
||||
actionId: "slice_promise"
|
||||
},
|
||||
initialView as PlayerView
|
||||
);
|
||||
expect(promise.playerView.promises[0]?.status).toBe("accepted");
|
||||
|
||||
const clue = await submitDemoTurn(
|
||||
{
|
||||
...request("continue", ""),
|
||||
branchId: promise.playerView.branchId,
|
||||
expectedNodeId: promise.playerView.nodeId,
|
||||
actionId: "slice_clue"
|
||||
},
|
||||
promise.playerView
|
||||
);
|
||||
expect(clue.playerView.knowledge.at(-1)?.title).toBe("封锁隧道的检修门");
|
||||
expect(clue.playerView.inventory.at(-1)?.name).toBe("半张旧车票");
|
||||
|
||||
const tunnel = await submitDemoTurn(
|
||||
{
|
||||
...request("continue", ""),
|
||||
branchId: clue.playerView.branchId,
|
||||
expectedNodeId: clue.playerView.nodeId,
|
||||
actionId: "slice_tunnel"
|
||||
},
|
||||
clue.playerView
|
||||
);
|
||||
expect(tunnel.playerView.history.at(-1)?.label).toBe("进入封锁隧道");
|
||||
|
||||
const returned = await submitDemoTurn(
|
||||
{
|
||||
...request("continue", ""),
|
||||
branchId: tunnel.playerView.branchId,
|
||||
expectedNodeId: tunnel.playerView.nodeId,
|
||||
actionId: "slice_return"
|
||||
},
|
||||
tunnel.playerView
|
||||
);
|
||||
expect(returned.playerView.promises[0]?.status).toBe("fulfilled");
|
||||
expect(returned.playerView.canContinue).toBe(false);
|
||||
expect(returned.playerView.beats.at(-1)?.text).toContain("你回来了");
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user