From 50b2eabfde62881ccc8d81690353d91f8fe7e262 Mon Sep 17 00:00:00 2001 From: Johannes Zellner Date: Fri, 3 Jun 2022 13:59:21 +0200 Subject: [PATCH] Also fixup userdirectory tests --- src/test/userdirectory-test.js | 104 ++++++++++++--------------------- 1 file changed, 37 insertions(+), 67 deletions(-) diff --git a/src/test/userdirectory-test.js b/src/test/userdirectory-test.js index ace58bdd6..c6d0ed6ae 100644 --- a/src/test/userdirectory-test.js +++ b/src/test/userdirectory-test.js @@ -210,94 +210,64 @@ describe('User Directory Ldap', function () { mockApp.accessRestriction = null; const entries = await ldapSearch('ou=groups,dc=cloudron', { filter: 'objectclass=group' }, auth); - expect(entries.length).to.equal(4); - - // ensure order for testability - entries.sort(function (a, b) { return a.cn < b.cn; }); - - expect(entries[0].cn).to.equal('users'); - expect(entries[0].memberuid.length).to.equal(2); - expect(entries[0].memberuid).to.contain(admin.id); - expect(entries[0].memberuid).to.contain(user.id); - - expect(entries[1].cn).to.equal('admins'); - // if only one entry, the array becomes a string :-/ - expect(entries[1].memberuid).to.equal(admin.id); - - expect(entries[2].cn).to.equal('ldap-test-1'); - expect(entries[2].memberuid.length).to.equal(2); - expect(entries[2].memberuid).to.contain(admin.id); - expect(entries[2].memberuid).to.contain(user.id); - - expect(entries[3].cn).to.equal('ldap-test-2'); - expect(entries[3].memberuid).to.equal(admin.id); - }); - - it ('succeeds with cn wildcard filter', async function () { - const entries = await ldapSearch('ou=groups,dc=cloudron', { filter: '&(objectclass=group)(cn=*)' }, auth); - expect(entries.length).to.equal(4); - - // ensure order for testability - entries.sort(function (a, b) { return a.cn < b.cn; }); - - expect(entries[0].cn).to.equal('users'); - expect(entries[0].memberuid.length).to.equal(2); - expect(entries[0].memberuid).to.contain(admin.id); - expect(entries[0].memberuid).to.contain(user.id); - - expect(entries[1].cn).to.equal('admins'); - // if only one entry, the array becomes a string :-/ - expect(entries[1].memberuid).to.equal(admin.id); - - expect(entries[2].cn).to.equal('ldap-test-1'); - expect(entries[2].memberuid.length).to.equal(2); - expect(entries[2].memberuid).to.contain(admin.id); - expect(entries[2].memberuid).to.contain(user.id); - - expect(entries[3].cn).to.equal('ldap-test-2'); - expect(entries[3].memberuid).to.equal(admin.id); - }); - - it('succeeds with memberuid filter', async function () { - const entries = await ldapSearch('ou=groups,dc=cloudron', { filter: '&(objectclass=group)(memberuid=' + user.id + ')' }, auth); expect(entries.length).to.equal(2); // ensure order for testability entries.sort(function (a, b) { return a.cn < b.cn; }); - expect(entries[0].cn).to.equal('users'); + expect(entries[0].cn).to.equal('ldap-test-1'); expect(entries[0].memberuid.length).to.equal(2); + expect(entries[0].memberuid).to.contain(admin.id); + expect(entries[0].memberuid).to.contain(user.id); - expect(entries[1].cn).to.equal('ldap-test-1'); - expect(entries[1].memberuid.length).to.equal(2); - expect(entries[1].memberuid).to.contain(admin.id); - expect(entries[1].memberuid).to.contain(user.id); + expect(entries[1].cn).to.equal('ldap-test-2'); + expect(entries[1].memberuid).to.equal(admin.id); + }); + + it ('succeeds with cn wildcard filter', async function () { + const entries = await ldapSearch('ou=groups,dc=cloudron', { filter: '&(objectclass=group)(cn=*)' }, auth); + expect(entries.length).to.equal(2); + + // ensure order for testability + entries.sort(function (a, b) { return a.cn < b.cn; }); + + expect(entries[0].cn).to.equal('ldap-test-1'); + expect(entries[0].memberuid.length).to.equal(2); + expect(entries[0].memberuid).to.contain(admin.id); + expect(entries[0].memberuid).to.contain(user.id); + + expect(entries[1].cn).to.equal('ldap-test-2'); + expect(entries[1].memberuid).to.equal(admin.id); + }); + + it('succeeds with memberuid filter', async function () { + const entries = await ldapSearch('ou=groups,dc=cloudron', { filter: '&(objectclass=group)(memberuid=' + user.id + ')' }, auth); + expect(entries.length).to.equal(1); + + // ensure order for testability + entries.sort(function (a, b) { return a.cn < b.cn; }); + + expect(entries[0].cn).to.equal('ldap-test-1'); + expect(entries[0].memberuid.length).to.equal(2); + expect(entries[0].memberuid).to.contain(admin.id); + expect(entries[0].memberuid).to.contain(user.id); }); it ('succeeds with pagination', async function () { mockApp.accessRestriction = null; const entries = await ldapSearch('ou=groups,dc=cloudron', { filter: 'objectclass=group', paged: true }, auth); - expect(entries.length).to.equal(4); + expect(entries.length).to.equal(2); // ensure order for testability entries.sort(function (a, b) { return a.cn < b.cn; }); - expect(entries[0].cn).to.equal('users'); + expect(entries[0].cn).to.equal('ldap-test-1'); expect(entries[0].memberuid.length).to.equal(2); expect(entries[0].memberuid).to.contain(admin.id); expect(entries[0].memberuid).to.contain(user.id); - expect(entries[1].cn).to.equal('admins'); - // if only one entry, the array becomes a string :-/ + expect(entries[1].cn).to.equal('ldap-test-2'); expect(entries[1].memberuid).to.equal(admin.id); - - expect(entries[2].cn).to.equal('ldap-test-1'); - expect(entries[2].memberuid.length).to.equal(2); - expect(entries[2].memberuid).to.contain(admin.id); - expect(entries[2].memberuid).to.contain(user.id); - - expect(entries[3].cn).to.equal('ldap-test-2'); - expect(entries[3].memberuid).to.equal(admin.id); }); }); });