This commit is contained in:
2026-08-22 11:09:05 -05:00
parent 798422988d
commit 410a33d9ac
1242 changed files with 250078 additions and 0 deletions
+53
View File
@@ -0,0 +1,53 @@
'use strict';
const test = require('node:test');
const assert = require('node:assert');
const { AuthStateMachine } = require('../src/bot/auth');
test('AuthStateMachine: register success via translate', () => {
const sm = new AuthStateMachine({});
sm.markRegisterSent();
sm.markAwaitRegister();
const r = sm.consume({ text: '', translate: 'commands.register.success' });
assert.strictEqual(r, 'auth_done');
assert.strictEqual(sm.isDone(), true);
});
test('AuthStateMachine: register success via phrase', () => {
const sm = new AuthStateMachine({ register_success: ['successfully registered'] });
sm.markRegisterSent();
sm.markAwaitRegister();
const r = sm.consume({ text: 'You have been successfully registered' });
assert.strictEqual(r, 'auth_done');
});
test('AuthStateMachine: already registered → login', () => {
const sm = new AuthStateMachine({});
const r = sm.consume({ text: 'You are already registered' });
assert.strictEqual(r, 'login_sent');
});
test('AuthStateMachine: login success', () => {
const sm = new AuthStateMachine({});
sm.markLoginSent();
sm.markAwaitLogin();
const r = sm.consume({ text: 'You have been logged in' });
assert.strictEqual(r, 'auth_done');
});
test('AuthStateMachine: out-of-order consume is no-op', () => {
const sm = new AuthStateMachine({});
sm.markRegisterSent();
sm.markAwaitRegister();
sm.consume({ text: 'You have been logged in' });
assert.strictEqual(sm.state, 'AWAIT_REGISTER');
});
test('AuthStateMachine: done consumes nothing', () => {
const sm = new AuthStateMachine({});
sm.markRegisterSent();
sm.markAwaitRegister();
sm.consume({ translate: 'commands.register.success' });
const r = sm.consume({ translate: 'commands.register.success' });
assert.strictEqual(r, null);
});