|
|
|
|
@ -285,7 +285,7 @@ describe(AssetService.name, () => {
|
|
|
|
|
.where('assetId', '=', asset.id)
|
|
|
|
|
.executeTakeFirstOrThrow(),
|
|
|
|
|
).resolves.toEqual({ lockedProperties: null });
|
|
|
|
|
await sut.update(auth, asset.id, { dateTimeOriginal: '2023-11-19T18:11:00.000-07:00' });
|
|
|
|
|
await sut.update(auth, asset.id, { dateTimeOriginal: '2023-11-19T18:11:00' });
|
|
|
|
|
|
|
|
|
|
await expect(
|
|
|
|
|
ctx.database
|
|
|
|
|
@ -296,7 +296,38 @@ describe(AssetService.name, () => {
|
|
|
|
|
).resolves.toEqual({ lockedProperties: ['dateTimeOriginal'] });
|
|
|
|
|
await expect(ctx.get(AssetRepository).getById(asset.id, { exifInfo: true })).resolves.toEqual(
|
|
|
|
|
expect.objectContaining({
|
|
|
|
|
exifInfo: expect.objectContaining({ dateTimeOriginal: '2023-11-20T01:11:00+00:00' }),
|
|
|
|
|
exifInfo: expect.objectContaining({ dateTimeOriginal: '2023-11-19T18:11:00+00:00', timeZone: null }),
|
|
|
|
|
}),
|
|
|
|
|
);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('should update dateTimeOriginal with time zone', async () => {
|
|
|
|
|
const { sut, ctx } = setup();
|
|
|
|
|
ctx.getMock(JobRepository).queue.mockResolvedValue();
|
|
|
|
|
const { user } = await ctx.newUser();
|
|
|
|
|
const auth = factory.auth({ user });
|
|
|
|
|
const { asset } = await ctx.newAsset({ ownerId: user.id });
|
|
|
|
|
await ctx.newExif({ assetId: asset.id, description: 'test' });
|
|
|
|
|
|
|
|
|
|
await expect(
|
|
|
|
|
ctx.database
|
|
|
|
|
.selectFrom('asset_exif')
|
|
|
|
|
.select('lockedProperties')
|
|
|
|
|
.where('assetId', '=', asset.id)
|
|
|
|
|
.executeTakeFirstOrThrow(),
|
|
|
|
|
).resolves.toEqual({ lockedProperties: null });
|
|
|
|
|
await sut.update(auth, asset.id, { dateTimeOriginal: '2023-11-19T18:11:00.000-07:00' });
|
|
|
|
|
|
|
|
|
|
await expect(
|
|
|
|
|
ctx.database
|
|
|
|
|
.selectFrom('asset_exif')
|
|
|
|
|
.select('lockedProperties')
|
|
|
|
|
.where('assetId', '=', asset.id)
|
|
|
|
|
.executeTakeFirstOrThrow(),
|
|
|
|
|
).resolves.toEqual({ lockedProperties: ['timeZone', 'dateTimeOriginal'] });
|
|
|
|
|
await expect(ctx.get(AssetRepository).getById(asset.id, { exifInfo: true })).resolves.toEqual(
|
|
|
|
|
expect.objectContaining({
|
|
|
|
|
exifInfo: expect.objectContaining({ dateTimeOriginal: '2023-11-20T01:11:00+00:00', timeZone: 'UTC-7' }),
|
|
|
|
|
}),
|
|
|
|
|
);
|
|
|
|
|
});
|
|
|
|
|
@ -329,4 +360,65 @@ describe(AssetService.name, () => {
|
|
|
|
|
);
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('should update dateTimeOriginal', async () => {
|
|
|
|
|
const { sut, ctx } = setup();
|
|
|
|
|
ctx.getMock(JobRepository).queueAll.mockResolvedValue();
|
|
|
|
|
const { user } = await ctx.newUser();
|
|
|
|
|
const auth = factory.auth({ user });
|
|
|
|
|
const { asset } = await ctx.newAsset({ ownerId: user.id });
|
|
|
|
|
await ctx.newExif({ assetId: asset.id, description: 'test' });
|
|
|
|
|
|
|
|
|
|
await expect(
|
|
|
|
|
ctx.database
|
|
|
|
|
.selectFrom('asset_exif')
|
|
|
|
|
.select('lockedProperties')
|
|
|
|
|
.where('assetId', '=', asset.id)
|
|
|
|
|
.executeTakeFirstOrThrow(),
|
|
|
|
|
).resolves.toEqual({ lockedProperties: null });
|
|
|
|
|
await sut.updateAll(auth, { ids: [asset.id], dateTimeOriginal: '2023-11-19T18:11:00' });
|
|
|
|
|
|
|
|
|
|
await expect(
|
|
|
|
|
ctx.database
|
|
|
|
|
.selectFrom('asset_exif')
|
|
|
|
|
.select('lockedProperties')
|
|
|
|
|
.where('assetId', '=', asset.id)
|
|
|
|
|
.executeTakeFirstOrThrow(),
|
|
|
|
|
).resolves.toEqual({ lockedProperties: ['dateTimeOriginal'] });
|
|
|
|
|
await expect(ctx.get(AssetRepository).getById(asset.id, { exifInfo: true })).resolves.toEqual(
|
|
|
|
|
expect.objectContaining({
|
|
|
|
|
exifInfo: expect.objectContaining({ dateTimeOriginal: '2023-11-19T18:11:00+00:00', timeZone: null }),
|
|
|
|
|
}),
|
|
|
|
|
);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('should update dateTimeOriginal with time zone', async () => {
|
|
|
|
|
const { sut, ctx } = setup();
|
|
|
|
|
ctx.getMock(JobRepository).queueAll.mockResolvedValue();
|
|
|
|
|
const { user } = await ctx.newUser();
|
|
|
|
|
const auth = factory.auth({ user });
|
|
|
|
|
const { asset } = await ctx.newAsset({ ownerId: user.id });
|
|
|
|
|
await ctx.newExif({ assetId: asset.id, description: 'test' });
|
|
|
|
|
|
|
|
|
|
await expect(
|
|
|
|
|
ctx.database
|
|
|
|
|
.selectFrom('asset_exif')
|
|
|
|
|
.select('lockedProperties')
|
|
|
|
|
.where('assetId', '=', asset.id)
|
|
|
|
|
.executeTakeFirstOrThrow(),
|
|
|
|
|
).resolves.toEqual({ lockedProperties: null });
|
|
|
|
|
await sut.updateAll(auth, { ids: [asset.id], dateTimeOriginal: '2023-11-19T18:11:00.000-07:00' });
|
|
|
|
|
await expect(
|
|
|
|
|
ctx.database
|
|
|
|
|
.selectFrom('asset_exif')
|
|
|
|
|
.select('lockedProperties')
|
|
|
|
|
.where('assetId', '=', asset.id)
|
|
|
|
|
.executeTakeFirstOrThrow(),
|
|
|
|
|
).resolves.toEqual({ lockedProperties: ['timeZone', 'dateTimeOriginal'] });
|
|
|
|
|
await expect(ctx.get(AssetRepository).getById(asset.id, { exifInfo: true })).resolves.toEqual(
|
|
|
|
|
expect.objectContaining({
|
|
|
|
|
exifInfo: expect.objectContaining({ dateTimeOriginal: '2023-11-20T01:11:00+00:00', timeZone: 'UTC-7' }),
|
|
|
|
|
}),
|
|
|
|
|
);
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|