Commit inicial: GTI Maquina Comercial
App local (Node + SQLite) para captura, tratamento e exportacao de leads comerciais, com dashboard de gestao, login/usuarios e integracao Z-PRO. Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
import test from 'node:test';
|
||||
import assert from 'node:assert/strict';
|
||||
import { hashPassword, verifyPassword } from '../src/auth.mjs';
|
||||
import { openDb, createUser, findUserByUsername, listUsers, ensureDefaultAdmin } from '../src/db.mjs';
|
||||
|
||||
test('hashPassword/verifyPassword aceita a senha certa e rejeita a errada', () => {
|
||||
const stored = hashPassword('minhaSenha123');
|
||||
assert.ok(verifyPassword('minhaSenha123', stored));
|
||||
assert.ok(!verifyPassword('senhaErrada', stored));
|
||||
});
|
||||
|
||||
test('hashPassword gera salt diferente a cada chamada (hashes distintos p/ mesma senha)', () => {
|
||||
assert.notEqual(hashPassword('abc'), hashPassword('abc'));
|
||||
});
|
||||
|
||||
test('ensureDefaultAdmin cria admin/admin somente no primeiro acesso', () => {
|
||||
const db = openDb(':memory:');
|
||||
ensureDefaultAdmin(db);
|
||||
|
||||
const admin = findUserByUsername(db, 'admin');
|
||||
assert.ok(admin);
|
||||
assert.equal(admin.role, 'admin');
|
||||
assert.ok(verifyPassword('admin', admin.password_hash));
|
||||
|
||||
createUser(db, { username: 'vendedor1', passwordHash: hashPassword('123456'), role: 'comercial' });
|
||||
ensureDefaultAdmin(db); // nao deve recriar nem duplicar
|
||||
|
||||
assert.equal(listUsers(db).length, 2);
|
||||
db.close();
|
||||
});
|
||||
|
||||
test('createUser rejeita username duplicado (constraint UNIQUE)', () => {
|
||||
const db = openDb(':memory:');
|
||||
createUser(db, { username: 'joao', passwordHash: hashPassword('123456'), role: 'comercial' });
|
||||
|
||||
assert.throws(() => createUser(db, { username: 'joao', passwordHash: hashPassword('outra'), role: 'admin' }));
|
||||
db.close();
|
||||
});
|
||||
Reference in New Issue
Block a user