TT#23436 Add first api client test as template

Change-Id: Id58d18d5f9ac2ec16707e35bb7710fbbc914763f
changes/16/16216/1
Hans-Peter Herzog 8 years ago
parent 24daa2070b
commit 6e5e611d48

@ -13,6 +13,7 @@
}
</script>
<style>
.q-field-icon,
.q-item-icon {

@ -1,11 +1,12 @@
import _ from 'lodash';
import Vue from 'vue';
import { getJsonBody } from './utils'
export function getPreferences(id) {
return new Promise((resolve, reject)=>{
Vue.http.get('/api/subscriberpreferences/' + id).then((result)=>{
resolve(JSON.parse(result.body));
resolve(getJsonBody(result.body));
}).catch((err)=>{
reject(err);
});

@ -0,0 +1,14 @@
import _ from 'lodash';
export function getJsonBody(body) {
if(_.isString(body)) {
try {
return JSON.parse(body);
} catch(err) {
return body;
}
}
return body;
}

@ -0,0 +1,54 @@
'use strict';
import Vue from 'vue';
import VueResource from 'vue-resource';
import { getPreferences } from '../../src/api/subscriber';
import { assert } from 'chai';
Vue.use(VueResource);
describe('Subscriber', function(){
it('should get all subscriber preferences', function(done) {
Vue.http.interceptors = [];
Vue.http.interceptors.unshift((request, next)=>{
next(request.respondWith(
{
body: JSON.stringify({
block_in_mode: false
})
},
{
status: 200
}
));
});
getPreferences('123').then(()=>{
done();
}).catch((err)=>{
done(err);
});
});
it('should handle a 403 Forbidden while requesting the preferences', function(done) {
Vue.http.interceptors = [];
Vue.http.interceptors.unshift((request, next)=>{
next(request.respondWith(
{
body: '403 Forbidden'
},
{
status: 403,
statusText: 'Forbidden'
}
));
});
getPreferences('123').then(()=>{
done(new Error('Test failed'));
}).catch((err)=>{
assert.equal(err.status, 403);
done();
});
});
});
Loading…
Cancel
Save