-
Notifications
You must be signed in to change notification settings - Fork 1
/
visit-overmind-spec.js
50 lines (44 loc) · 1.24 KB
/
visit-overmind-spec.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/// <reference types="cypress" />
Cypress.Commands.add('onOvermind', set => {
expect(set).to.be.a('function', 'onOvermind expects a callback')
// prepare for application calling
// window.overmind = overmind
// during initialization
cy.on('window:before:load', win => {
console.log('prepare overmind setter')
Object.defineProperty(win, 'overmind', { set })
})
})
it('catches overmind creation', () => {
cy.onOvermind(overmind => {
cy.spy(overmind.effects, 'request').as('request')
})
cy.visit('/')
cy.get('@request').should('have.been.calledOnce')
})
it('stubs request', () => {
cy.fixture('posts').then(posts => {
cy.onOvermind(overmind => {
cy.stub(overmind.effects, 'request')
.as('request')
.resolves(posts)
})
})
cy.visit('/')
cy.get('@request').should('have.been.calledOnce')
})
it('can transform post titles', () => {
cy.onOvermind(overmind => {
const originalRequest = overmind.effects.request
cy.stub(overmind.effects, 'request')
.as('request')
.callsFake(url => {
return originalRequest(url).then(list => {
list[0].title = 'My mock title'
return list
})
})
})
cy.visit('/')
cy.contains('.post', 'My mock title')
})