Switch blob/notebook to Axios

This commit is contained in:
Eric Eastwood 2017-12-15 01:10:34 -06:00
parent 254c0754eb
commit ac9e65a9b9
2 changed files with 23 additions and 39 deletions

View file

@ -1,10 +1,8 @@
/* eslint-disable no-new */
import Vue from 'vue';
import VueResource from 'vue-resource';
import axios from '../../lib/utils/axios_utils';
import notebookLab from '../../notebook/index.vue';
Vue.use(VueResource);
export default () => {
const el = document.getElementById('js-notebook-viewer');
@ -50,14 +48,14 @@ export default () => {
`,
methods: {
loadFile() {
this.$http.get(el.dataset.endpoint)
.then(response => response.json())
.then((res) => {
this.json = res;
axios.get(el.dataset.endpoint)
.then(res => res.data)
.then((data) => {
this.json = data;
this.loading = false;
})
.catch((e) => {
if (e.status) {
if (e.status !== 200) {
this.loadError = true;
}

View file

@ -1,4 +1,5 @@
import Vue from 'vue';
import MockAdapter from 'axios-mock-adapter';
import axios from '~/lib/utils/axios_utils';
import renderNotebook from '~/blob/notebook';
describe('iPython notebook renderer', () => {
@ -17,8 +18,11 @@ describe('iPython notebook renderer', () => {
});
describe('successful response', () => {
const response = (request, next) => {
next(request.respondWith(JSON.stringify({
let mock;
beforeEach((done) => {
mock = new MockAdapter(axios);
mock.onGet('/test').reply(200, {
cells: [{
cell_type: 'markdown',
source: ['# test'],
@ -31,13 +35,7 @@ describe('iPython notebook renderer', () => {
],
outputs: [],
}],
}), {
status: 200,
}));
};
beforeEach((done) => {
Vue.http.interceptors.push(response);
});
renderNotebook();
@ -47,9 +45,7 @@ describe('iPython notebook renderer', () => {
});
afterEach(() => {
Vue.http.interceptors = _.without(
Vue.http.interceptors, response,
);
mock.reset();
});
it('does not show loading icon', () => {
@ -86,14 +82,11 @@ describe('iPython notebook renderer', () => {
});
describe('error in JSON response', () => {
const response = (request, next) => {
next(request.respondWith('{ "cells": [{"cell_type": "markdown"} }', {
status: 200,
}));
};
let mock;
beforeEach((done) => {
Vue.http.interceptors.push(response);
mock = new MockAdapter(axios);
mock.onGet('/test').reply(() => Promise.reject({ status: 200, data: '{ "cells": [{"cell_type": "markdown"} }' }));
renderNotebook();
@ -103,9 +96,7 @@ describe('iPython notebook renderer', () => {
});
afterEach(() => {
Vue.http.interceptors = _.without(
Vue.http.interceptors, response,
);
mock.reset();
});
it('does not show loading icon', () => {
@ -122,14 +113,11 @@ describe('iPython notebook renderer', () => {
});
describe('error getting file', () => {
const response = (request, next) => {
next(request.respondWith('', {
status: 500,
}));
};
let mock;
beforeEach((done) => {
Vue.http.interceptors.push(response);
mock = new MockAdapter(axios);
mock.onGet('/test').reply(500, '');
renderNotebook();
@ -139,9 +127,7 @@ describe('iPython notebook renderer', () => {
});
afterEach(() => {
Vue.http.interceptors = _.without(
Vue.http.interceptors, response,
);
mock.reset();
});
it('does not show loading icon', () => {