feat(mindspace): enforce PostgreSQL user data delivery
This commit is contained in:
@@ -7,6 +7,32 @@ import test from 'node:test';
|
||||
import { Algorithm as Argon2Algorithm, hashRawSync as argon2HashRawSync } from '@node-rs/argon2';
|
||||
import { createUserAuth, clearUserLogoutCookies, userLoginCookies } from './user-auth.mjs';
|
||||
|
||||
test('ensureAllUserDataSpaces provisions every active non-admin user', async () => {
|
||||
const calls = [];
|
||||
const pool = {
|
||||
async query(sql) {
|
||||
if (sql.includes("WHERE role = 'user' AND status = 'active'")) {
|
||||
return [[
|
||||
{ id: 'user-1', workspace_root: '/tmp/user-1' },
|
||||
{ id: 'user-2', workspace_root: '/tmp/user-2' },
|
||||
]];
|
||||
}
|
||||
return [[]];
|
||||
},
|
||||
};
|
||||
const auth = createUserAuth(pool, {
|
||||
persistSessions: false,
|
||||
provisionUserDataSpace: async (input) => calls.push(input),
|
||||
});
|
||||
const result = await auth.ensureAllUserDataSpaces();
|
||||
assert.equal(result.provisioned, 2);
|
||||
assert.deepEqual(result.errors, []);
|
||||
assert.deepEqual(calls, [
|
||||
{ userId: 'user-1', workspaceRoot: '/tmp/user-1' },
|
||||
{ userId: 'user-2', workspaceRoot: '/tmp/user-2' },
|
||||
]);
|
||||
});
|
||||
|
||||
function hashPasswordPbkdf2(password, salt) {
|
||||
return crypto.pbkdf2Sync(password, salt, 100000, 64, 'sha512').toString('hex');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user