1import * as ScreenCapture from '../ScreenCapture';
2
3describe('ScreenCapture methods are defined', () => {
4  it('isAvailableAsync is defined', async () => {
5    expect(ScreenCapture.isAvailableAsync).toBeDefined();
6  });
7
8  it('preventScreenCapture is defined', async () => {
9    expect(ScreenCapture.preventScreenCaptureAsync).toBeDefined();
10  });
11
12  it('allowScreenCapture is defined', async () => {
13    expect(ScreenCapture.allowScreenCaptureAsync).toBeDefined();
14  });
15
16  it('usePreventScreenCapture hook is defined', async () => {
17    expect(ScreenCapture.usePreventScreenCapture).toBeDefined();
18  });
19
20  it('addScreenshotListener is defined', async () => {
21    expect(ScreenCapture.addScreenshotListener).toBeDefined();
22  });
23
24  it('removeScreenshotListener is defined', async () => {
25    expect(ScreenCapture.removeScreenshotListener).toBeDefined();
26  });
27});
28
29describe('Test key functionality', () => {
30  it('resolves false for isAvailableAsync on web platform', async () => {
31    await expect(ScreenCapture.isAvailableAsync()).resolves.toBeFalsy();
32  });
33
34  it('throws for preventScreenCapture on web platform', async () => {
35    await expect(ScreenCapture.preventScreenCaptureAsync).rejects.toThrowError('not available');
36  });
37
38  it('throws for allowScreenCapture on web platform', async () => {
39    await expect(ScreenCapture.allowScreenCaptureAsync).rejects.toThrowError('not available');
40  });
41});
42