refactor "deploy_keys" to use axios
This commit is contained in:
parent
f0a0da69d6
commit
0cc349f083
|
@ -1,37 +1,24 @@
|
||||||
import Vue from 'vue';
|
import axios from '~/lib/utils/axios_utils';
|
||||||
import VueResource from 'vue-resource';
|
|
||||||
|
|
||||||
Vue.use(VueResource);
|
|
||||||
|
|
||||||
export default class DeployKeysService {
|
export default class DeployKeysService {
|
||||||
constructor(endpoint) {
|
constructor(endpoint) {
|
||||||
this.endpoint = endpoint;
|
this.axios = axios.create({
|
||||||
|
baseURL: endpoint,
|
||||||
this.resource = Vue.resource(
|
});
|
||||||
`${this.endpoint}{/id}`,
|
|
||||||
{},
|
|
||||||
{
|
|
||||||
enable: {
|
|
||||||
method: 'PUT',
|
|
||||||
url: `${this.endpoint}{/id}/enable`,
|
|
||||||
},
|
|
||||||
disable: {
|
|
||||||
method: 'PUT',
|
|
||||||
url: `${this.endpoint}{/id}/disable`,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
getKeys() {
|
getKeys() {
|
||||||
return this.resource.get().then(response => response.json());
|
return this.axios.get()
|
||||||
|
.then(response => response.data);
|
||||||
}
|
}
|
||||||
|
|
||||||
enableKey(id) {
|
enableKey(id) {
|
||||||
return this.resource.enable({ id }, {});
|
return this.axios.put(`${id}/enable`)
|
||||||
|
.then(response => response.data);
|
||||||
}
|
}
|
||||||
|
|
||||||
disableKey(id) {
|
disableKey(id) {
|
||||||
return this.resource.disable({ id }, {});
|
return this.axios.put(`${id}/disable`)
|
||||||
|
.then(response => response.data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -96,7 +96,7 @@
|
||||||
"worker-loader": "^1.1.1"
|
"worker-loader": "^1.1.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"axios-mock-adapter": "^1.10.0",
|
"axios-mock-adapter": "^1.15.0",
|
||||||
"babel-eslint": "^8.0.2",
|
"babel-eslint": "^8.0.2",
|
||||||
"babel-plugin-istanbul": "^4.1.6",
|
"babel-plugin-istanbul": "^4.1.6",
|
||||||
"babel-plugin-rewire": "^1.1.0",
|
"babel-plugin-rewire": "^1.1.0",
|
||||||
|
|
|
@ -1,28 +1,25 @@
|
||||||
import _ from 'underscore';
|
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
|
import MockAdapter from 'axios-mock-adapter';
|
||||||
|
import axios from '~/lib/utils/axios_utils';
|
||||||
import eventHub from '~/deploy_keys/eventhub';
|
import eventHub from '~/deploy_keys/eventhub';
|
||||||
import deployKeysApp from '~/deploy_keys/components/app.vue';
|
import deployKeysApp from '~/deploy_keys/components/app.vue';
|
||||||
|
import { TEST_HOST } from 'spec/test_constants';
|
||||||
|
|
||||||
describe('Deploy keys app component', () => {
|
describe('Deploy keys app component', () => {
|
||||||
const data = getJSONFixture('deploy_keys/keys.json');
|
const data = getJSONFixture('deploy_keys/keys.json');
|
||||||
let vm;
|
let vm;
|
||||||
|
let mock;
|
||||||
|
|
||||||
const deployKeysResponse = (request, next) => {
|
beforeEach((done) => {
|
||||||
next(
|
// setup axios mock before component
|
||||||
request.respondWith(JSON.stringify(data), {
|
mock = new MockAdapter(axios);
|
||||||
status: 200,
|
mock.onGet(`${TEST_HOST}/dummy/`).replyOnce(200, data);
|
||||||
}),
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
beforeEach(done => {
|
|
||||||
const Component = Vue.extend(deployKeysApp);
|
const Component = Vue.extend(deployKeysApp);
|
||||||
|
|
||||||
Vue.http.interceptors.push(deployKeysResponse);
|
|
||||||
|
|
||||||
vm = new Component({
|
vm = new Component({
|
||||||
propsData: {
|
propsData: {
|
||||||
endpoint: '/test',
|
endpoint: `${TEST_HOST}/dummy`,
|
||||||
projectId: '8',
|
projectId: '8',
|
||||||
},
|
},
|
||||||
}).$mount();
|
}).$mount();
|
||||||
|
@ -31,7 +28,7 @@ describe('Deploy keys app component', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
afterEach(() => {
|
afterEach(() => {
|
||||||
Vue.http.interceptors = _.without(Vue.http.interceptors, deployKeysResponse);
|
mock.restore();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('renders loading icon', done => {
|
it('renders loading icon', done => {
|
||||||
|
|
|
@ -444,9 +444,9 @@ aws4@^1.2.1, aws4@^1.6.0:
|
||||||
version "1.6.0"
|
version "1.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
|
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
|
||||||
|
|
||||||
axios-mock-adapter@^1.10.0:
|
axios-mock-adapter@^1.15.0:
|
||||||
version "1.10.0"
|
version "1.15.0"
|
||||||
resolved "https://registry.yarnpkg.com/axios-mock-adapter/-/axios-mock-adapter-1.10.0.tgz#3ccee65466439a2c7567e932798fc0377d39209d"
|
resolved "https://registry.yarnpkg.com/axios-mock-adapter/-/axios-mock-adapter-1.15.0.tgz#fbc06825d8302c95c3334d21023bba996255d45d"
|
||||||
dependencies:
|
dependencies:
|
||||||
deep-equal "^1.0.1"
|
deep-equal "^1.0.1"
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue