1- /// <reference path="../support/index.d.ts" />
1+ /// <reference types="cypress" />
2+
3+ before ( ( ) => {
4+ cy . visit ( '/useIntercom' ) ;
5+
6+ cy . intercept ( 'https://api-iam.intercom.io/messenger/web/ping' ) . as (
7+ 'intercomPing' ,
8+ ) ;
9+ cy . intercept ( 'https://api-iam.intercom.io/messenger/web/open' ) . as (
10+ 'intercomOpen' ,
11+ ) ;
12+ cy . intercept ( 'https://api-iam.intercom.io/messenger/web/metrics' ) . as (
13+ 'intercomMetrics' ,
14+ ) ;
15+ cy . intercept ( 'https://api-iam.intercom.io/messenger/web/home_cards' ) . as (
16+ 'intercomHomeCards' ,
17+ ) ;
18+ } ) ;
219
320describe ( 'show' , ( ) => {
421 it ( 'should show when calling `show`' , ( ) => {
522 cy . visit ( '/useIntercom' ) ;
623
724 cy . get ( '[data-cy=boot]' ) . click ( ) ;
25+ cy . wait ( '@intercomPing' ) ;
826
927 cy . get ( '[data-cy=show]' ) . click ( ) ;
10- cy . get ( '.intercom-messenger-frame > iframe' ) . should ( 'be.visible' ) ;
28+ cy . wait ( '@intercomOpen' ) ;
29+ cy . wait ( '@intercomHomeCards' ) ;
30+
31+ cy . get ( 'iframe[name="intercom-messenger-frame"]' )
32+ . should ( 'be.visible' )
33+ . then ( ( $iframe ) => {
34+ const $body = $iframe . contents ( ) . find ( 'body' ) ;
35+
36+ cy . wrap ( $body ) . contains ( 'Start a conversation' ) ;
37+ } ) ;
1138 } ) ;
1239} ) ;
1340
@@ -26,28 +53,54 @@ describe('showMessages', () => {
2653} ) ;
2754
2855describe ( 'showNewMessage' , ( ) => {
29- it ( 'should show new message `showNewMessage`' , ( ) => {
56+ beforeEach ( ( ) => {
57+ cy . intercept ( 'https://api-iam.intercom.io/messenger/web/ping' ) . as (
58+ 'intercomPing' ,
59+ ) ;
60+
61+ cy . intercept ( 'https://api-iam.intercom.io/messenger/web/open' ) . as (
62+ 'intercomOpen' ,
63+ ) ;
64+ cy . intercept ( 'https://api-iam.intercom.io/messenger/web/metrics' ) . as (
65+ 'intercomMetrics' ,
66+ ) ;
67+
3068 cy . visit ( '/useIntercom' ) ;
69+ } ) ;
3170
71+ it ( 'should show new message `showNewMessage`' , ( ) => {
3272 cy . get ( '[data-cy=boot]' ) . click ( ) ;
73+ cy . wait ( '@intercomPing' ) ;
3374
3475 cy . get ( '[data-cy=show-new-messages]' ) . click ( ) ;
76+ cy . wait ( '@intercomOpen' ) ;
77+
78+ cy . get ( 'iframe[name="intercom-messenger-frame"]' )
79+ . should ( 'be.visible' )
80+ . then ( ( $iframe ) => {
81+ const $body = $iframe . contents ( ) . find ( 'body' ) ;
3582
36- cy . get ( '[name="intercom-messenger-frame"]' )
37- . iframe ( '[aria-label=Back]' )
38- . should ( 'exist' ) ;
83+ cy . wrap ( $body ) . find ( '[aria-label="Back"]' ) . should ( 'exist' ) ;
84+ } ) ;
3985 } ) ;
4086
4187 it ( 'should show new message with content when calling `showNewMessage`' , ( ) => {
42- cy . visit ( '/useIntercom' ) ;
43-
4488 cy . get ( '[data-cy=boot]' ) . click ( ) ;
89+ cy . wait ( '@intercomPing' ) ;
4590
4691 cy . get ( '[data-cy=show-messages-content]' ) . click ( ) ;
47- cy . wait ( 1000 ) ;
92+ cy . wait ( '@intercomOpen' ) ;
93+
94+ cy . get ( 'iframe[name="intercom-messenger-frame"]' )
95+ . should ( 'be.visible' )
96+ . then ( ( $iframe ) => {
97+ const $body = $iframe . contents ( ) . find ( 'body' ) ;
4898
49- cy . get ( '[name="intercom-messenger-frame"]' )
50- . iframe ( 'textarea[name="message"]' )
51- . should ( 'exist' ) ;
99+ cy . wrap ( $body ) . find ( '[aria-label="Back"]' ) . should ( 'exist' ) ;
100+ cy . wrap ( $body )
101+ . find ( 'textarea[name="message"]' )
102+ . should ( 'exist' )
103+ . should ( 'have.value' , 'pre-definded-content' ) ;
104+ } ) ;
52105 } ) ;
53106} ) ;
0 commit comments