Skip to content

Commit

Permalink
Update HybridObjectTestsScreen.tsx
Browse files Browse the repository at this point in the history
  • Loading branch information
mrousavy committed Sep 16, 2024
1 parent 5140ac8 commit dff19c7
Showing 1 changed file with 35 additions and 41 deletions.
76 changes: 35 additions & 41 deletions example/src/screens/HybridObjectTestsScreen.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -87,49 +87,43 @@ export function HybridObjectTestsScreen() {
return `📱 Idle`
}, [tests])

const updateTest = React.useCallback(
(
runner: TestRunner,
newState: TestState['state'],
newMessage: TestState['extraMessage']
) => {
setTests((t) => {
const indexOfTest = t.findIndex((v) => v.runner === runner)
if (indexOfTest === -1) {
throw new Error(
`Test ${runner} does not exist in all tests! What did you click? lol`
)
}
const copy = [...t]
copy[indexOfTest]!.state = newState
copy[indexOfTest]!.extraMessage = newMessage
return copy
})
},
[]
)

const runTest = React.useCallback(
(test: TestState) => {
updateTest(test.runner, '⏳ Running', '')
requestAnimationFrame(async () => {
const result = await test.runner.run()
switch (result.status) {
case 'successful':
updateTest(test.runner, '✅ Passed', `Result: ${result.result}`)
break
case 'failed':
updateTest(test.runner, '❌ Failed', `Error: ${result.message}`)
break
}
})
},
[updateTest]
)
const updateTest = (
runner: TestRunner,
newState: TestState['state'],
newMessage: TestState['extraMessage']
) => {
setTests((t) => {
const indexOfTest = t.findIndex((v) => v.runner === runner)
if (indexOfTest === -1) {
throw new Error(
`Test ${runner} does not exist in all tests! What did you click? lol`
)
}
const copy = [...t]
copy[indexOfTest]!.state = newState
copy[indexOfTest]!.extraMessage = newMessage
return copy
})
}

const runTest = (test: TestState) => {
updateTest(test.runner, '⏳ Running', '')
requestAnimationFrame(async () => {
const result = await test.runner.run()
switch (result.status) {
case 'successful':
updateTest(test.runner, '✅ Passed', `Result: ${result.result}`)
break
case 'failed':
updateTest(test.runner, '❌ Failed', `Error: ${result.message}`)
break
}
})
}

const runAllTests = React.useCallback(() => {
const runAllTests = () => {
tests.forEach((t) => runTest(t))
}, [runTest, tests])
}

return (
<SafeAreaView style={styles.container}>
Expand Down

0 comments on commit dff19c7

Please sign in to comment.