chore!: duration in milliseconds (#28003)

* server changes

* openapi

* web changes

* mobile changes

* assume 3.0 client

* deprecate

* review feedback

* update medium tests

* linting
This commit is contained in:
Mert
2026-04-30 09:44:27 -04:00
committed by GitHub
parent 97c62136b7
commit b554664791
44 changed files with 1092 additions and 335 deletions
@@ -21,7 +21,7 @@ describe(SyncEntityType.SyncResetV1, () => {
it('should work', async () => {
const { auth, ctx } = await setup();
await ctx.assertSyncIsComplete(auth, [SyncRequestType.AssetsV1]);
await ctx.assertSyncIsComplete(auth, [SyncRequestType.AssetsV2]);
});
it('should detect a pending sync reset', async () => {
@@ -31,7 +31,7 @@ describe(SyncEntityType.SyncResetV1, () => {
isPendingSyncReset: true,
});
const response = await ctx.syncStream(auth, [SyncRequestType.AssetsV1]);
const response = await ctx.syncStream(auth, [SyncRequestType.AssetsV2]);
expect(response).toEqual([{ type: SyncEntityType.SyncResetV1, data: {}, ack: 'SyncResetV1|reset' }]);
});
@@ -40,8 +40,8 @@ describe(SyncEntityType.SyncResetV1, () => {
await ctx.newAsset({ ownerId: user.id });
await expect(ctx.syncStream(auth, [SyncRequestType.AssetsV1])).resolves.toEqual([
expect.objectContaining({ type: SyncEntityType.AssetV1 }),
await expect(ctx.syncStream(auth, [SyncRequestType.AssetsV2])).resolves.toEqual([
expect.objectContaining({ type: SyncEntityType.AssetV2 }),
expect.objectContaining({ type: SyncEntityType.SyncCompleteV1 }),
]);
@@ -49,7 +49,7 @@ describe(SyncEntityType.SyncResetV1, () => {
isPendingSyncReset: true,
});
await expect(ctx.syncStream(auth, [SyncRequestType.AssetsV1])).resolves.toEqual([
await expect(ctx.syncStream(auth, [SyncRequestType.AssetsV2])).resolves.toEqual([
{ type: SyncEntityType.SyncResetV1, data: {}, ack: 'SyncResetV1|reset' },
]);
});
@@ -63,8 +63,8 @@ describe(SyncEntityType.SyncResetV1, () => {
isPendingSyncReset: true,
});
await expect(ctx.syncStream(auth, [SyncRequestType.AssetsV1], true)).resolves.toEqual([
expect.objectContaining({ type: SyncEntityType.AssetV1 }),
await expect(ctx.syncStream(auth, [SyncRequestType.AssetsV2], true)).resolves.toEqual([
expect.objectContaining({ type: SyncEntityType.AssetV2 }),
expect.objectContaining({ type: SyncEntityType.SyncCompleteV1 }),
]);
});
@@ -74,20 +74,20 @@ describe(SyncEntityType.SyncResetV1, () => {
await ctx.newAsset({ ownerId: user.id });
const response = await ctx.syncStream(auth, [SyncRequestType.AssetsV1]);
const response = await ctx.syncStream(auth, [SyncRequestType.AssetsV2]);
await ctx.syncAckAll(auth, response);
await ctx.get(SessionRepository).update(auth.session!.id, {
isPendingSyncReset: true,
});
const resetResponse = await ctx.syncStream(auth, [SyncRequestType.AssetsV1]);
const resetResponse = await ctx.syncStream(auth, [SyncRequestType.AssetsV2]);
await ctx.syncAckAll(auth, resetResponse);
const postResetResponse = await ctx.syncStream(auth, [SyncRequestType.AssetsV1]);
const postResetResponse = await ctx.syncStream(auth, [SyncRequestType.AssetsV2]);
expect(postResetResponse).toEqual([
expect.objectContaining({ type: SyncEntityType.AssetV1 }),
expect.objectContaining({ type: SyncEntityType.AssetV2 }),
expect.objectContaining({ type: SyncEntityType.SyncCompleteV1 }),
]);
});