Skip to content

Commit 03d1dac

Browse files
committed
Fix show tests
1 parent 059028f commit 03d1dac

6 files changed

Lines changed: 69 additions & 85 deletions

File tree

packages/react-use-intercom/cypress.config.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
import { defineConfig } from 'cypress';
22

33
export default defineConfig({
4+
// Enable cross-domain iframe access
5+
chromeWebSecurity: false,
46
e2e: {
57
baseUrl: 'http://localhost:5173/#/',
6-
supportFile: 'cypress/support/index.ts',
78
video: false,
89
specPattern: 'cypress/e2e/**/*.ts',
910
},

packages/react-use-intercom/cypress/e2e/boot.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
/// <reference types="cypress" />
2+
13
describe('boot', () => {
24
beforeEach(() => {
35
cy.visit('/useIntercom');
Lines changed: 65 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,40 @@
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

320
describe('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

2855
describe('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
});

packages/react-use-intercom/cypress/support/e2e.ts

Lines changed: 0 additions & 37 deletions
This file was deleted.

packages/react-use-intercom/cypress/support/index.d.ts

Lines changed: 0 additions & 15 deletions
This file was deleted.

packages/react-use-intercom/cypress/support/index.ts

Lines changed: 0 additions & 20 deletions
This file was deleted.

0 commit comments

Comments
 (0)