From 5fbf2e500d7b19f63dd0ab9fd2e3aeca92af16c4 Mon Sep 17 00:00:00 2001 From: Alessandro Magionami Date: Fri, 4 Apr 2025 10:47:21 +0200 Subject: [PATCH] chore(core): test get last version repository function --- .../integration/repositories/versions.spec.ts | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 packages/server/modules/core/tests/integration/repositories/versions.spec.ts diff --git a/packages/server/modules/core/tests/integration/repositories/versions.spec.ts b/packages/server/modules/core/tests/integration/repositories/versions.spec.ts new file mode 100644 index 000000000..6ef24eafe --- /dev/null +++ b/packages/server/modules/core/tests/integration/repositories/versions.spec.ts @@ -0,0 +1,69 @@ +import { db } from '@/db/knex' +import { + createRandomEmail, + createRandomString +} from '@/modules/core/helpers/testHelpers' +import { getLastVersionByProjectIdFactory } from '@/modules/core/repositories/versions' +import { createTestUser } from '@/test/authHelper' +import { BasicTestCommit, createTestCommit } from '@/test/speckle-helpers/commitHelper' +import { createTestStream } from '@/test/speckle-helpers/streamHelper' +import { expect } from 'chai' + +describe('Versions repositories @core', () => { + describe('getLastVersionByProjectIdFactory returns a function that, ', () => { + const getLastVersionByProjectId = getLastVersionByProjectIdFactory({ db }) + it('should return the last version for each projectId', async () => { + const user = await createTestUser({ + name: createRandomString(), + email: createRandomEmail() + }) + + const project1 = { + id: '', + name: createRandomString() + } + await createTestStream(project1, user) + + const version1 = { + streamId: project1.id + } + await createTestCommit(version1 as BasicTestCommit, { + owner: user + }) + const version2 = { + id: createRandomString(), + streamId: project1.id + } + await createTestCommit(version2 as BasicTestCommit, { + owner: user + }) + + const project2 = { + id: '', + name: createRandomString() + } + await createTestStream(project2, user) + + const version3 = { + streamId: project2.id + } + await createTestCommit(version3 as BasicTestCommit, { + owner: user + }) + const version4 = { + streamId: project2.id + } + await createTestCommit(version4 as BasicTestCommit, { + owner: user + }) + + const result = await getLastVersionByProjectId({ + projectIds: [project1.id, project2.id] + }) + const lastVersionProject1 = result[project1.id] + const lastVersionProject2 = result[project1.id] + expect(lastVersionProject1.projectId).to.eq(project1.id) + expect(lastVersionProject2.projectId).to.eq(project2.id) + }) + }) +})