diff --git a/apps/common-app/src/examples/RuntimeTests/ReJest/RuntimeTestsApi.ts b/apps/common-app/src/examples/RuntimeTests/ReJest/RuntimeTestsApi.ts index e40c2170539..265904b4034 100644 --- a/apps/common-app/src/examples/RuntimeTests/ReJest/RuntimeTestsApi.ts +++ b/apps/common-app/src/examples/RuntimeTests/ReJest/RuntimeTestsApi.ts @@ -8,6 +8,7 @@ import { DescribeDecorator, TestDecorator } from './types'; export { Presets } from './Presets'; const testRunner = new TestRunner(); +const valueRegistry = testRunner.getValueRegistry(); type DescribeFunction = (name: string, buildSuite: BuildFunction) => void; type TestFunction = (name: string, buildTest: BuildFunction) => void; @@ -126,11 +127,11 @@ export function getTrackerCallCount(name: string) { } export function registerValue(name: string, value: SharedValue) { - return testRunner.registerValue(name, value); + return valueRegistry.registerValue(name, value); } export async function getRegisteredValue(name: string) { - return await testRunner.getRegisteredValue(name); + return await valueRegistry.getRegisteredValue(name); } export function getTestComponent(name: string): TestComponent { diff --git a/apps/common-app/src/examples/RuntimeTests/ReJest/TestRunner/TestRunner.ts b/apps/common-app/src/examples/RuntimeTests/ReJest/TestRunner/TestRunner.ts index 481c5f3adf7..9499589ff8a 100644 --- a/apps/common-app/src/examples/RuntimeTests/ReJest/TestRunner/TestRunner.ts +++ b/apps/common-app/src/examples/RuntimeTests/ReJest/TestRunner/TestRunner.ts @@ -4,7 +4,6 @@ import type { BuildFunction, NullableTestValue, Operation, - SharedValueSnapshot, TestCase, TestConfiguration, TestSuite, @@ -15,7 +14,6 @@ import { DescribeDecorator, TestDecorator } from '../types'; import { TestComponent } from '../TestComponent'; import { applyMarkdown, formatString } from '../utils/stringFormatUtils'; import type { - SharedValue, LayoutAnimationStartFunction, LayoutAnimationType, SharedTransitionAnimationsValues, @@ -26,6 +24,7 @@ import { assertMockedAnimationTimestamp, assertTestCase, assertTestSuite } from import { createUpdatesContainer } from './UpdatesContainer'; import { makeMutable, runOnJS } from 'react-native-reanimated'; import { RenderLock, SyncUIRunner } from '../utils/SyncUIRunner'; +import { ValueRegistry } from './ValueRegistry'; import { TestSummaryLogger } from './TestSummaryLogger'; export { Presets } from '../Presets'; @@ -48,11 +47,15 @@ export class TestRunner { private _currentTestSuite: TestSuite | null = null; private _currentTestCase: TestCase | null = null; private _renderHook: (component: ReactElement | null) => void = () => {}; - private _valueRegistry: Record = {}; private _includesOnly: boolean = false; private _syncUIRunner: SyncUIRunner = new SyncUIRunner(); private _renderLock: RenderLock = new RenderLock(); - private _testSummary: TestSummaryLogger = new TestSummaryLogger(); + private _valueRegistry = new ValueRegistry(); + private _testSummary = new TestSummaryLogger(); + + public getValueRegistry() { + return this._valueRegistry; + } public notify(name: string) { 'worklet'; @@ -196,27 +199,6 @@ export class TestRunner { } } - public registerValue(name: string, value: SharedValue) { - 'worklet'; - this._valueRegistry[name] = value; - } - - public async getRegisteredValue(name: string): Promise { - const jsValue = this._valueRegistry[name].value; - const sharedValue = this._valueRegistry[name]; - const valueContainer = makeMutable(null); - await this._syncUIRunner.runOnUIBlocking(() => { - 'worklet'; - valueContainer.value = sharedValue.value; - }, 1000); - const uiValue = valueContainer.value; - return { - name, - onJS: jsValue as TestValue, - onUI: uiValue as TestValue, - }; - } - public getTrackerCallCount(name: string): TrackerCallCount { return { name, diff --git a/apps/common-app/src/examples/RuntimeTests/ReJest/TestRunner/ValueRegistry.ts b/apps/common-app/src/examples/RuntimeTests/ReJest/TestRunner/ValueRegistry.ts new file mode 100644 index 00000000000..deea9968957 --- /dev/null +++ b/apps/common-app/src/examples/RuntimeTests/ReJest/TestRunner/ValueRegistry.ts @@ -0,0 +1,30 @@ +import { makeMutable } from 'react-native-reanimated'; +import type { SharedValue } from 'react-native-reanimated'; +import type { SharedValueSnapshot, TestValue } from '../types'; +import { SyncUIRunner } from '../utils/SyncUIRunner'; + +export class ValueRegistry { + private _valueRegistry: Record = {}; + private _syncUIRunner = new SyncUIRunner(); + + public registerValue(name: string, value: SharedValue) { + 'worklet'; + this._valueRegistry[name] = value; + } + + public async getRegisteredValue(name: string): Promise { + const jsValue = this._valueRegistry[name].value; + const sharedValue = this._valueRegistry[name]; + const valueContainer = makeMutable(null); + await this._syncUIRunner.runOnUIBlocking(() => { + 'worklet'; + valueContainer.value = sharedValue.value; + }, 1000); + const uiValue = valueContainer.value; + return { + name, + onJS: jsValue as TestValue, + onUI: uiValue as TestValue, + }; + } +}