This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// spec/javascripts/integration/twitter/mountComponent.spec.js | |
import { expect } from 'chai'; | |
import sinon from 'sinon'; | |
import createFixture from '../../support/createFixture'; | |
describe('mountComponent', () => { | |
let fixture; | |
let server; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// app/assets/javascripts/app/twitter/mountComponent.js | |
export default function mountComponent(opts) { | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
export default function mountComponent(opts) { | |
const containerNode = opts.containerNode; | |
containerNode.innerHTML = ` | |
<div class="tweet"><p>Hi @dude!</p></div> | |
<div class="tweet"><p>Pizza!</p></div> | |
`; | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const httpStatusCode = 200; | |
const contentType = { 'Content-Type': 'application/json' }; | |
const serverResponse = JSON.stringify({ foo: 'bar' }); | |
const server = sinon.fakeServer.create(); | |
server.respondWith('GET', '/my/endpoint', [ | |
httpStatusCode, contentType, serverResponse | |
]); | |
performRequest(); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// spec/javascripts/integration/twitter/fetchTimeline.spec.js | |
import { expect } from 'chai'; | |
import sinon from 'sinon'; | |
describe('fetchTimeline', () => { | |
let server; | |
beforeEach(() => { | |
server = sinon.fakeServer.create(); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// app/assets/javascxripts/app/twitter/fetchTimeline.js | |
import axios from 'axios'; | |
export default function fetchTimeline(id) { | |
return axios.get(`/twitter_timeline/${id}`); | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// app/assets/javascripts/app/twitter/fetchTimeline.js | |
import { get } from 'axios'; | |
const options = { responseType: 'json' }; | |
export default function fetchTimeline(id) { | |
return get(`/twitter_timeline/${id}`, options).then(response => response.data); | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
it('chains then callbacks', () => { | |
server.respondWith('GET', '/twitter_timeline/thiago', [ | |
200, { 'Content-Type': 'application/json' }, JSON.stringify(response), | |
]); | |
const promise = fetchTimeline('thiago').then((body) => { | |
expect(body).to.deep.equal(response); | |
return `${body.tweets[0].text} modified`; | |
}); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// spec/javascripts/support/createFakeTimelineServer.js | |
import sinon from 'sinon'; | |
const headers = { 'Content-Type': 'application/json' }; | |
export default function createFakeTimelineServer() { | |
const server = sinon.fakeServer.create(); | |
server.autoRespond = true; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// spec/javascripts/integration/twitter/fetchTimeline.spec.js | |
import { expect } from 'chai'; | |
import sinon from 'sinon'; | |
import fetchTimeline from 'app/twitter/fetchTimeline'; | |
import createFakeTimelineServer from '../../support/createFakeTimelineServer'; | |
describe('fetchTimeline', () => { | |
let server; |