Commit ac9e65a9 authored by Eric Eastwood's avatar Eric Eastwood

Switch blob/notebook to Axios

parent 254c0754
/* eslint-disable no-new */ /* eslint-disable no-new */
import Vue from 'vue'; import Vue from 'vue';
import VueResource from 'vue-resource'; import axios from '../../lib/utils/axios_utils';
import notebookLab from '../../notebook/index.vue'; import notebookLab from '../../notebook/index.vue';
Vue.use(VueResource);
export default () => { export default () => {
const el = document.getElementById('js-notebook-viewer'); const el = document.getElementById('js-notebook-viewer');
...@@ -50,14 +48,14 @@ export default () => { ...@@ -50,14 +48,14 @@ export default () => {
`, `,
methods: { methods: {
loadFile() { loadFile() {
this.$http.get(el.dataset.endpoint) axios.get(el.dataset.endpoint)
.then(response => response.json()) .then(res => res.data)
.then((res) => { .then((data) => {
this.json = res; this.json = data;
this.loading = false; this.loading = false;
}) })
.catch((e) => { .catch((e) => {
if (e.status) { if (e.status !== 200) {
this.loadError = true; this.loadError = true;
} }
......
import Vue from 'vue'; import MockAdapter from 'axios-mock-adapter';
import axios from '~/lib/utils/axios_utils';
import renderNotebook from '~/blob/notebook'; import renderNotebook from '~/blob/notebook';
describe('iPython notebook renderer', () => { describe('iPython notebook renderer', () => {
...@@ -17,8 +18,11 @@ describe('iPython notebook renderer', () => { ...@@ -17,8 +18,11 @@ describe('iPython notebook renderer', () => {
}); });
describe('successful response', () => { describe('successful response', () => {
const response = (request, next) => { let mock;
next(request.respondWith(JSON.stringify({
beforeEach((done) => {
mock = new MockAdapter(axios);
mock.onGet('/test').reply(200, {
cells: [{ cells: [{
cell_type: 'markdown', cell_type: 'markdown',
source: ['# test'], source: ['# test'],
...@@ -31,13 +35,7 @@ describe('iPython notebook renderer', () => { ...@@ -31,13 +35,7 @@ describe('iPython notebook renderer', () => {
], ],
outputs: [], outputs: [],
}], }],
}), { });
status: 200,
}));
};
beforeEach((done) => {
Vue.http.interceptors.push(response);
renderNotebook(); renderNotebook();
...@@ -47,9 +45,7 @@ describe('iPython notebook renderer', () => { ...@@ -47,9 +45,7 @@ describe('iPython notebook renderer', () => {
}); });
afterEach(() => { afterEach(() => {
Vue.http.interceptors = _.without( mock.reset();
Vue.http.interceptors, response,
);
}); });
it('does not show loading icon', () => { it('does not show loading icon', () => {
...@@ -86,14 +82,11 @@ describe('iPython notebook renderer', () => { ...@@ -86,14 +82,11 @@ describe('iPython notebook renderer', () => {
}); });
describe('error in JSON response', () => { describe('error in JSON response', () => {
const response = (request, next) => { let mock;
next(request.respondWith('{ "cells": [{"cell_type": "markdown"} }', {
status: 200,
}));
};
beforeEach((done) => { 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(); renderNotebook();
...@@ -103,9 +96,7 @@ describe('iPython notebook renderer', () => { ...@@ -103,9 +96,7 @@ describe('iPython notebook renderer', () => {
}); });
afterEach(() => { afterEach(() => {
Vue.http.interceptors = _.without( mock.reset();
Vue.http.interceptors, response,
);
}); });
it('does not show loading icon', () => { it('does not show loading icon', () => {
...@@ -122,14 +113,11 @@ describe('iPython notebook renderer', () => { ...@@ -122,14 +113,11 @@ describe('iPython notebook renderer', () => {
}); });
describe('error getting file', () => { describe('error getting file', () => {
const response = (request, next) => { let mock;
next(request.respondWith('', {
status: 500,
}));
};
beforeEach((done) => { beforeEach((done) => {
Vue.http.interceptors.push(response); mock = new MockAdapter(axios);
mock.onGet('/test').reply(500, '');
renderNotebook(); renderNotebook();
...@@ -139,9 +127,7 @@ describe('iPython notebook renderer', () => { ...@@ -139,9 +127,7 @@ describe('iPython notebook renderer', () => {
}); });
afterEach(() => { afterEach(() => {
Vue.http.interceptors = _.without( mock.reset();
Vue.http.interceptors, response,
);
}); });
it('does not show loading icon', () => { it('does not show loading icon', () => {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment