Skip to content

Commit 6d51ea6

Browse files
committed
chore: add checks in unit tests to ensure that the returned resolvedTimeline and resolvedState are serializable
1 parent f6d131f commit 6d51ea6

File tree

7 files changed

+28
-11
lines changed

7 files changed

+28
-11
lines changed

src/__tests__/basic.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
/* eslint-disable jest/no-standalone-expect */
22

3-
import { EventType, ResolvedTimelineObject, TimelineObjectInstance, getResolvedState, resolveTimeline } from '..'
3+
import { EventType, ResolvedTimelineObject, TimelineObjectInstance } from '..'
44

55
import { baseInstances } from '../resolver/lib/instance'
6-
import { describeVariants } from './testlib'
6+
import { describeVariants, resolveTimeline, getResolvedState } from './testlib'
77

88
describeVariants(
99
'Resolver, basic',

src/__tests__/groups.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/* eslint-disable jest/no-standalone-expect */
22

3-
import { EventType, TimelineObjectInstance, getResolvedState, resolveTimeline } from '../'
4-
import { describeVariants } from './testlib'
3+
import { EventType, TimelineObjectInstance } from '../'
4+
import { describeVariants, resolveTimeline, getResolvedState } from './testlib'
55
import { omit } from '../resolver/lib/lib'
66
import { baseInstances } from '../resolver/lib/instance'
77

src/__tests__/index.spec.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,12 @@ import {
44
EventType,
55
validateObject,
66
validateTimeline,
7-
resolveTimeline,
8-
getResolvedState,
97
applyKeyframeContent,
108
ResolveError,
119
} from '../index'
1210
import { baseInstances } from '../resolver/lib/instance'
1311
import { clone } from '../resolver/lib/lib'
12+
import { resolveTimeline, getResolvedState } from './testlib'
1413

1514
describe('index', () => {
1615
test('resolve timeline', () => {

src/__tests__/invalidate.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/* eslint-disable jest/no-standalone-expect */
2-
import { TimelineObject, getResolvedState, resolveTimeline } from '../'
3-
import { describeVariants } from './testlib'
2+
import { TimelineObject } from '../'
3+
import { describeVariants, resolveTimeline, getResolvedState } from './testlib'
44

55
function clone<T>(o: T): T {
66
return JSON.parse(JSON.stringify(o))

src/__tests__/keyframes.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/* eslint-disable jest/no-standalone-expect */
2-
import { EventType, getResolvedState, resolveTimeline } from '../'
2+
import { EventType } from '../'
33
import { baseInstances } from '../resolver/lib/instance'
4-
import { describeVariants } from './testlib'
4+
import { describeVariants, resolveTimeline, getResolvedState } from './testlib'
55

66
describeVariants(
77
'Resolver, keyframes',

src/__tests__/legacy.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import {
1212
TimelineEnable,
1313
} from '../api'
1414

15-
import { getResolvedState, resolveTimeline } from '..'
15+
import { resolveTimeline, getResolvedState } from './testlib'
1616
import { clone, isEmpty, sortBy } from '../resolver/lib/lib'
1717
import { baseInstances } from '../resolver/lib/instance'
1818

src/__tests__/testlib.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
/* eslint-disable jest/no-export, jest/valid-title, jest/expect-expect, jest/no-standalone-expect, jest/no-done-callback */
22

33
import { ResolverCache, TimelineObject } from '../api'
4+
import * as Timeline from '..'
45

56
interface Test {
67
(name: string, fn?: ProvidesCallback, timeout?: number): void
@@ -142,3 +143,20 @@ function reverseTimeline(tl: TimelineObject[]): TimelineObject[] {
142143

143144
return tl
144145
}
146+
147+
/** resolveTimeline, with an extra check that the timeline is serializable */
148+
export function resolveTimeline(
149+
...args: Parameters<typeof Timeline.resolveTimeline>
150+
): ReturnType<typeof Timeline.resolveTimeline> {
151+
const tl = Timeline.resolveTimeline(...args)
152+
expect(() => JSON.stringify(tl)).not.toThrow() // test that it's serializable
153+
return tl
154+
}
155+
/** getResolvedState, with an extra check that the state is serializable */
156+
export function getResolvedState(
157+
...args: Parameters<typeof Timeline.getResolvedState>
158+
): ReturnType<typeof Timeline.getResolvedState> {
159+
const state = Timeline.getResolvedState(...args)
160+
expect(() => JSON.stringify(state)).not.toThrow() // test that it's serializable
161+
return state
162+
}

0 commit comments

Comments
 (0)