1
1
import React from 'react' ;
2
2
import HTML , { RenderHTMLProps } from 'react-native-render-html' ;
3
3
import renderer from 'react-test-renderer' ;
4
- import WebView from 'react-native- webview' ;
5
- import IframeRenderer from '../IframeRenderer' ;
4
+ import WebView from '@formidable- webview/ersatz ' ;
5
+ import IframeRenderer , { iframeModel } from '../IframeRenderer' ;
6
6
7
7
describe ( 'iframe renderer' , ( ) => {
8
+ const defaultConfig : Partial < RenderHTMLProps > = {
9
+ WebView,
10
+ renderers : {
11
+ iframe : IframeRenderer
12
+ } ,
13
+ customHTMLElementModels : {
14
+ iframe : iframeModel
15
+ } ,
16
+ contentWidth : 10
17
+ } ;
8
18
it ( 'should render without errors' , ( ) => {
9
19
expect ( ( ) => {
10
20
renderer . create (
11
21
< HTML
12
- WebView = { WebView }
13
- renderers = { {
14
- iframe : IframeRenderer
15
- } }
16
- contentWidth = { 10 }
22
+ { ...defaultConfig }
17
23
source = { {
18
24
html : '<iframe width="300" height="300" src="https://google.com/" />'
19
25
} }
@@ -27,6 +33,7 @@ describe('iframe renderer', () => {
27
33
html : '<iframe width="300" height="300" src="https://google.com/" />'
28
34
} ,
29
35
provideEmbeddedHeaders : ( uri , tagName , params ) => {
36
+ //@ts -ignore
30
37
if ( tagName === 'iframe' ) {
31
38
params ;
32
39
return {
@@ -35,16 +42,12 @@ describe('iframe renderer', () => {
35
42
}
36
43
}
37
44
} ;
38
- const rendered = renderer . create (
39
- < HTML
40
- WebView = { WebView }
41
- renderers = { {
42
- iframe : IframeRenderer
43
- } }
44
- contentWidth = { 10 }
45
- { ...props }
46
- />
47
- ) ;
48
- expect ( rendered . toJSON ( ) ) . toMatchSnapshot ( ) ;
45
+ const rendered = renderer . create ( < HTML { ...defaultConfig } { ...props } /> ) ;
46
+
47
+ expect ( rendered . root . findByType ( WebView ) . props . source ) . toMatchObject ( {
48
+ headers : {
49
+ 'X-Frame-Options' : 'ALLOW-FROM https://google.com'
50
+ }
51
+ } ) ;
49
52
} ) ;
50
53
} ) ;
0 commit comments