diff options
Diffstat (limited to 'desktop/companion/test_mood.js')
| -rw-r--r-- | desktop/companion/test_mood.js | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/desktop/companion/test_mood.js b/desktop/companion/test_mood.js index 1331f70..3439f7c 100644 --- a/desktop/companion/test_mood.js +++ b/desktop/companion/test_mood.js @@ -29,6 +29,7 @@ const NOW = 10000000; const calm = over => Object.assign({ leaving: false, now: NOW, destructAt: 0, dodging: false, shoved: false, shovedAt: 0, recording: false, busy: false, repliedAt: 0, clicks: { count: 0, at: 0 }, mockAt: 0, typingAt: 0, wakeAt: 0, admireAt: 0, singAt: 0, + djAt: 0, music: false, groove: "", monologue: false, idle: 0, }, over); const state = over => M.pick(calm(over)).state; @@ -49,6 +50,7 @@ const ladder = [ ["think", { busy: true }], ["wave", { repliedAt: NOW - 10 }], ["sing", { singAt: NOW - 10 }], + ["dj", { djAt: NOW - 10 }], ["clicks", { clicks: { count: 2, at: NOW - 10 } }], ["admire", { admireAt: NOW - 10 }], ["mock", { mockAt: NOW - 10 }], @@ -78,9 +80,21 @@ assert.deepStrictEqual(M.pick(calm({ idle: 1 })), { state: "bored", frame: "slee assert.deepStrictEqual(M.pick(calm({ idle: 2 })), { state: "yawn", frame: "yawn" }); assert.deepStrictEqual(M.pick(calm({ idle: 3 })), { state: "lying", frame: "lying" }); +// Music while bored: she grooves with the picked frame instead, whistling +// when nothing was picked; yawning and lying down are unchanged. +assert.deepStrictEqual(M.pick(calm({ idle: 1, music: true, groove: "headbang" })), { state: "groove", frame: "headbang" }); +assert.deepStrictEqual(M.pick(calm({ idle: 1, music: true })), { state: "groove", frame: "whistle" }); +assert.deepStrictEqual(M.pick(calm({ idle: 1, groove: "headbang" })), { state: "bored", frame: "sleepy" }); +assert.strictEqual(state({ idle: 2, music: true }), "yawn"); +assert.strictEqual(state({ idle: 3, music: true }), "lying"); +// Music while awake is the rest pose; the DJ is only the burst. +assert.strictEqual(state({ music: true }), "base"); +assert.deepStrictEqual(M.pick(calm({ djAt: NOW - 10 })), { state: "dj", frame: "dj" }); + // Holds end on time. assert.strictEqual(state({ repliedAt: NOW - M.T.waveHold }), "base"); assert.strictEqual(state({ singAt: NOW - M.T.singHold }), "base"); +assert.strictEqual(state({ djAt: NOW - M.T.djHold }), "base"); assert.strictEqual(state({ typingAt: NOW - M.T.typingHold }), "base"); assert.strictEqual(state({ wakeAt: NOW - M.T.wakeHold }), "base"); assert.strictEqual(state({ clicks: { count: 3, at: NOW - M.T.clickHold } }), "base"); |
