From 0a1b6931af7c64ab9e63ac2a63533a3777cc0a40 Mon Sep 17 00:00:00 2001 From: Faruk AYDIN Date: Wed, 2 Oct 2024 10:52:05 +0300 Subject: [PATCH] test: Add tests for Identity model --- .../__snapshots__/identity.ee.test.js.snap | 37 +++++++++++++++++ .../backend/src/models/identity.ee.test.js | 40 +++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 packages/backend/src/models/__snapshots__/identity.ee.test.js.snap create mode 100644 packages/backend/src/models/identity.ee.test.js diff --git a/packages/backend/src/models/__snapshots__/identity.ee.test.js.snap b/packages/backend/src/models/__snapshots__/identity.ee.test.js.snap new file mode 100644 index 00000000..b64f46ba --- /dev/null +++ b/packages/backend/src/models/__snapshots__/identity.ee.test.js.snap @@ -0,0 +1,37 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`Identity model > jsonSchema should have correct validations 1`] = ` +{ + "properties": { + "id": { + "format": "uuid", + "type": "string", + }, + "providerId": { + "format": "uuid", + "type": "string", + }, + "providerType": { + "enum": [ + "saml", + ], + "type": "string", + }, + "remoteId": { + "minLength": 1, + "type": "string", + }, + "userId": { + "format": "uuid", + "type": "string", + }, + }, + "required": [ + "providerId", + "remoteId", + "userId", + "providerType", + ], + "type": "object", +} +`; diff --git a/packages/backend/src/models/identity.ee.test.js b/packages/backend/src/models/identity.ee.test.js new file mode 100644 index 00000000..599a229f --- /dev/null +++ b/packages/backend/src/models/identity.ee.test.js @@ -0,0 +1,40 @@ +import { describe, it, expect } from 'vitest'; +import Identity from './identity.ee'; +import User from './user'; +import SamlAuthProvider from './saml-auth-provider.ee'; +import Base from './base'; + +describe('Identity model', () => { + it('tableName should return correct name', () => { + expect(Identity.tableName).toBe('identities'); + }); + + it('jsonSchema should have correct validations', () => { + expect(Identity.jsonSchema).toMatchSnapshot(); + }); + + it('relationMappings should return correct associations', () => { + const relationMappings = Identity.relationMappings(); + + const expectedRelations = { + user: { + relation: Base.BelongsToOneRelation, + modelClass: User, + join: { + from: 'users.id', + to: 'identities.user_id', + }, + }, + samlAuthProvider: { + relation: Base.BelongsToOneRelation, + modelClass: SamlAuthProvider, + join: { + from: 'saml_auth_providers.id', + to: 'identities.provider_id', + }, + }, + }; + + expect(relationMappings).toStrictEqual(expectedRelations); + }); +});