From d896238f23054f26b5ad0842f2e62b8a83e05ed0 Mon Sep 17 00:00:00 2001 From: Faruk AYDIN Date: Wed, 27 Nov 2024 16:59:49 +0300 Subject: [PATCH] test: Implement generateLogoutRequestBody test for saml auth provider model --- .../src/models/saml-auth-provider.ee.test.js | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/packages/backend/src/models/saml-auth-provider.ee.test.js b/packages/backend/src/models/saml-auth-provider.ee.test.js index d241058c..a07e0e71 100644 --- a/packages/backend/src/models/saml-auth-provider.ee.test.js +++ b/packages/backend/src/models/saml-auth-provider.ee.test.js @@ -1,4 +1,5 @@ import { vi, describe, it, expect } from 'vitest'; +import { v4 as uuidv4 } from 'uuid'; import SamlAuthProvider from '../models/saml-auth-provider.ee'; import RoleMapping from '../models/role-mapping.ee'; import Identity from './identity.ee'; @@ -105,4 +106,41 @@ describe('SamlAuthProvider model', () => { expect(samlAuthProvider.config).toStrictEqual(expectedConfig); }); + + it('generateLogoutRequestBody should return a correctly encoded SAML logout request', () => { + vi.mock('uuid', () => ({ + v4: vi.fn(), + })); + + const samlAuthProvider = new SamlAuthProvider(); + + samlAuthProvider.entryPoint = 'https://example.com/saml'; + samlAuthProvider.issuer = 'sample-issuer'; + + const mockUuid = '123e4567-e89b-12d3-a456-426614174000'; + uuidv4.mockReturnValue(mockUuid); + + const sessionId = 'test-session-id'; + + const logoutRequest = samlAuthProvider.generateLogoutRequestBody(sessionId); + + const expectedLogoutRequest = ` + + + sample-issuer + test-session-id + + `; + + const expectedEncodedRequest = Buffer.from(expectedLogoutRequest).toString( + 'base64' + ); + + expect(logoutRequest).toBe(expectedEncodedRequest); + }); });