Skip to content

Commit 0bb8a15

Browse files
committed
Fix sql tests
1 parent 2915ae5 commit 0bb8a15

3 files changed

Lines changed: 29 additions & 9 deletions

File tree

server/test/integration/auth/mysql.auth.test.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,12 @@ function configureEnv() {
2020
process.env.SQL_QUERY_ONE_USER = 'SELECT username, full_name, surname, mail, home_directory, login_shell, uid_number, gid_number, password_hash AS password FROM users WHERE username = ?';
2121
}
2222

23+
const directoryStub = {
24+
initialize: async () => {},
25+
cleanup: async () => {},
26+
findUser: async (username) => ({ username }),
27+
};
28+
2329
maybeDescribe('MySQL Auth Backend (real DB) - Integration', () => {
2430
let engine;
2531
let conn;
@@ -28,7 +34,7 @@ maybeDescribe('MySQL Auth Backend (real DB) - Integration', () => {
2834
async function startServer() {
2935
configureEnv();
3036
const authProvider = new SQLAuthProvider();
31-
engine = new LdapEngine({ baseDn, port, authProviders: [authProvider], directoryProvider: { initialize: async()=>{}, cleanup: async()=>{} }, logger });
37+
engine = new LdapEngine({ baseDn, port, authProviders: [authProvider], directoryProvider: directoryStub, logger });
3238
await engine.start();
3339
client = createClient();
3440
return client;

server/test/integration/auth/postgres.auth.test.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,12 @@ const url = process.env.SQL_URI || 'postgres://testuser:testpass@127.0.0.1:25432
1414

1515
function createClient() { return ldap.createClient({ url: `ldap://127.0.0.1:${port}` }); }
1616

17+
const directoryStub = {
18+
initialize: async () => {},
19+
cleanup: async () => {},
20+
findUser: async (username) => ({ username }),
21+
};
22+
1723
async function seedPostgres() {
1824
const client = new Client({ connectionString: url });
1925
await client.connect();
@@ -33,7 +39,7 @@ maybeDescribe('PostgreSQL Auth Backend (real DB) - Integration', () => {
3339
process.env.SQL_QUERY_ONE_USER = 'SELECT username, full_name, surname, mail, home_directory, login_shell, uid_number, gid_number, password_hash AS password FROM users WHERE username = ?';
3440

3541
const authProvider = new SQLAuthProvider();
36-
engine = new LdapEngine({ baseDn, port, authProviders: [authProvider], directoryProvider: { initialize: async()=>{}, cleanup: async()=>{} }, logger });
42+
engine = new LdapEngine({ baseDn, port, authProviders: [authProvider], directoryProvider: directoryStub, logger });
3743
await engine.start();
3844

3945
const client = createClient();
@@ -46,7 +52,7 @@ maybeDescribe('PostgreSQL Auth Backend (real DB) - Integration', () => {
4652
process.env.SQL_QUERY_ONE_USER = 'SELECT username, full_name, surname, mail, home_directory, login_shell, uid_number, gid_number, password_hash AS password FROM users WHERE username = ?';
4753

4854
const authProvider = new SQLAuthProvider();
49-
engine = new LdapEngine({ baseDn, port, authProviders: [authProvider], directoryProvider: { initialize: async()=>{}, cleanup: async()=>{} }, logger });
55+
engine = new LdapEngine({ baseDn, port, authProviders: [authProvider], directoryProvider: directoryStub, logger });
5056
await engine.start();
5157

5258
const client = createClient();

server/test/integration/auth/sqlite.auth.test.js

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,15 +34,25 @@ function createClient() {
3434
return ldap.createClient({ url: `ldap://127.0.0.1:${port}` });
3535
}
3636

37+
// Minimal directory stub – only needs findUser so _authenticateAcrossRealms
38+
// can locate the user before delegating to the auth provider.
39+
const directoryStub = {
40+
initialize: async () => {},
41+
cleanup: async () => {},
42+
findUser: async (username) => ({ username }),
43+
};
44+
3745
describe('SQLite Auth Backend (real DB) - Integration', () => {
3846
let engine;
3947
let dbPath;
48+
let client;
4049

4150
beforeAll(() => {
4251
// nothing yet
4352
});
4453

4554
afterEach(async () => {
55+
if (client) { try { client.unbind(); client.destroy(); } catch (_) {} client = null; }
4656
if (engine) { await engine.stop(); engine = null; }
4757
if (dbPath && fs.existsSync(dbPath)) {
4858
try { fs.unlinkSync(dbPath); } catch (_) {}
@@ -60,15 +70,14 @@ describe('SQLite Auth Backend (real DB) - Integration', () => {
6070
process.env.SQL_QUERY_ONE_USER = 'SELECT username, full_name, surname, mail, home_directory, login_shell, uid_number, gid_number, password_hash AS password FROM users WHERE username = ?';
6171

6272
const authProvider = new SQLAuthProvider();
63-
engine = new LdapEngine({ baseDn, port, authProviders: [authProvider], directoryProvider: { initialize: async()=>{}, cleanup: async()=>{} }, logger });
73+
engine = new LdapEngine({ baseDn, port, authProviders: [authProvider], directoryProvider: directoryStub, logger });
6474
await engine.start();
6575

66-
const client = createClient();
76+
client = createClient();
6777
const userDN = `uid=testuser,${baseDn}`;
6878
await expect(new Promise((resolve, reject) => {
6979
client.bind(userDN, 'password123', (err) => err ? reject(err) : resolve());
7080
})).resolves.not.toThrow();
71-
client.unbind();
7281
});
7382

7483
test('2. Bind with invalid credentials should fail (SQLite)', async () => {
@@ -79,14 +88,13 @@ describe('SQLite Auth Backend (real DB) - Integration', () => {
7988
process.env.SQL_QUERY_ONE_USER = 'SELECT username, full_name, surname, mail, home_directory, login_shell, uid_number, gid_number, password_hash AS password FROM users WHERE username = ?';
8089

8190
const authProvider = new SQLAuthProvider();
82-
engine = new LdapEngine({ baseDn, port, authProviders: [authProvider], directoryProvider: { initialize: async()=>{}, cleanup: async()=>{} }, logger });
91+
engine = new LdapEngine({ baseDn, port, authProviders: [authProvider], directoryProvider: directoryStub, logger });
8392
await engine.start();
8493

85-
const client = createClient();
94+
client = createClient();
8695
const userDN = `uid=testuser,${baseDn}`;
8796
await expect(new Promise((resolve, reject) => {
8897
client.bind(userDN, 'wrong', (err) => err ? reject(err) : resolve());
8998
})).rejects.toThrow();
90-
client.unbind();
9199
});
92100
});

0 commit comments

Comments
 (0)