Skip to content

Commit a9f51e1

Browse files
committed
chore: Adjust preview swap test
1 parent 4472676 commit a9f51e1

1 file changed

Lines changed: 19 additions & 3 deletions

File tree

apps/simple-camera/__tests__/visioncamera.nativepreviewview.harness.tsx

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -722,7 +722,7 @@ describe('VisionCamera - NativePreviewView', () => {
722722
}
723723
})
724724

725-
it('switches a running session between two mounted NativePreviewViews', async () => {
725+
it('starts a replacement preview and stops the removed preview while running', async () => {
726726
const session = await VisionCamera.createCameraSession(false)
727727
const firstPreviewOutput = VisionCamera.createPreviewOutput()
728728
const secondPreviewOutput = VisionCamera.createPreviewOutput()
@@ -739,13 +739,18 @@ describe('VisionCamera - NativePreviewView', () => {
739739
const firstLayout = deferred<Layout>()
740740
const secondLayout = deferred<Layout>()
741741
const firstPreviewStarted = deferred()
742+
const firstPreviewStopped = deferred()
742743
const secondPreviewStarted = deferred()
744+
const onFirstPreviewStarted = fn(() => firstPreviewStarted.resolve())
745+
const onFirstPreviewStopped = fn(() => firstPreviewStopped.resolve())
746+
const onSecondPreviewStarted = fn(() => secondPreviewStarted.resolve())
743747
const errorSub = session.addOnErrorListener((error) => {
744748
firstRef.reject(error)
745749
secondRef.reject(error)
746750
firstLayout.reject(error)
747751
secondLayout.reject(error)
748752
firstPreviewStarted.reject(error)
753+
firstPreviewStopped.reject(error)
749754
secondPreviewStarted.reject(error)
750755
})
751756

@@ -761,7 +766,8 @@ describe('VisionCamera - NativePreviewView', () => {
761766
onLayout={(event) => {
762767
firstLayout.resolve(toLayout(event))
763768
}}
764-
onPreviewStarted={callback(firstPreviewStarted.resolve)}
769+
onPreviewStarted={callback(onFirstPreviewStarted)}
770+
onPreviewStopped={callback(onFirstPreviewStopped)}
765771
/>
766772
<NativePreviewView
767773
style={styles.switchPreview}
@@ -772,7 +778,7 @@ describe('VisionCamera - NativePreviewView', () => {
772778
onLayout={(event) => {
773779
secondLayout.resolve(toLayout(event))
774780
}}
775-
onPreviewStarted={callback(secondPreviewStarted.resolve)}
781+
onPreviewStarted={callback(onSecondPreviewStarted)}
776782
/>
777783
</View>,
778784
)
@@ -804,6 +810,9 @@ describe('VisionCamera - NativePreviewView', () => {
804810
15_000,
805811
'first NativePreviewView onPreviewStarted',
806812
)
813+
expect(onFirstPreviewStarted).toHaveBeenCalledOnce()
814+
expect(onFirstPreviewStopped).not.toHaveBeenCalled()
815+
expect(onSecondPreviewStarted).not.toHaveBeenCalled()
807816
expectPreviewGeometry(firstPreview, firstPreviewLayout)
808817

809818
await session.configure([
@@ -818,6 +827,13 @@ describe('VisionCamera - NativePreviewView', () => {
818827
15_000,
819828
'second NativePreviewView onPreviewStarted',
820829
)
830+
await withTimeout(
831+
firstPreviewStopped.promise,
832+
10_000,
833+
'first NativePreviewView onPreviewStopped',
834+
)
835+
expect(onSecondPreviewStarted).toHaveBeenCalledOnce()
836+
expect(onFirstPreviewStopped).toHaveBeenCalledOnce()
821837
expectPreviewGeometry(secondPreview, secondPreviewLayout)
822838
} finally {
823839
errorSub.remove()

0 commit comments

Comments
 (0)