mirror of
https://github.com/immich-app/immich
synced 2026-08-22 13:13:05 +00:00
refactor: e2e tests (#30870)
This commit is contained in:
parent
c63824bcea
commit
7cd0a7d30c
32 changed files with 618 additions and 648 deletions
44
server/test/medium/specs/services/stack.service.spec.ts
Normal file
44
server/test/medium/specs/services/stack.service.spec.ts
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
import { Kysely } from 'kysely';
|
||||
import { AccessRepository } from 'src/repositories/access.repository';
|
||||
import { AssetRepository } from 'src/repositories/asset.repository';
|
||||
import { EventRepository } from 'src/repositories/event.repository';
|
||||
import { LoggingRepository } from 'src/repositories/logging.repository';
|
||||
import { StackRepository } from 'src/repositories/stack.repository';
|
||||
import { DB } from 'src/schema';
|
||||
import { StackService } from 'src/services/stack.service';
|
||||
import { newMediumService } from 'test/medium.factory';
|
||||
import { factory } from 'test/small.factory';
|
||||
import { getKyselyDB } from 'test/utils';
|
||||
|
||||
let defaultDatabase: Kysely<DB>;
|
||||
|
||||
const setup = (db?: Kysely<DB>) => {
|
||||
return newMediumService(StackService, {
|
||||
database: db || defaultDatabase,
|
||||
real: [AccessRepository, AssetRepository, StackRepository],
|
||||
mock: [EventRepository, LoggingRepository],
|
||||
});
|
||||
};
|
||||
|
||||
beforeAll(async () => {
|
||||
defaultDatabase = await getKyselyDB();
|
||||
});
|
||||
|
||||
describe(StackService.name, () => {
|
||||
describe('create', () => {
|
||||
it('should not stack an asset of another user', async () => {
|
||||
const { sut, ctx } = setup();
|
||||
const { user } = await ctx.newUser();
|
||||
const { user: otherUser } = await ctx.newUser();
|
||||
const { asset } = await ctx.newAsset({ ownerId: user.id });
|
||||
const { asset: otherAsset } = await ctx.newAsset({ ownerId: otherUser.id });
|
||||
|
||||
await expect(sut.create(factory.auth({ user }), { assetIds: [asset.id, otherAsset.id] })).rejects.toThrow(
|
||||
'Not found or no asset.update access',
|
||||
);
|
||||
await expect(
|
||||
ctx.database.selectFrom('stack').selectAll().where('ownerId', '=', user.id).execute(),
|
||||
).resolves.toEqual([]);
|
||||
});
|
||||
});
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue