suki.sprd
Version:
Spreadshirt extension for suki.js
316 lines (201 loc) • 5.53 kB
JavaScript
if (!chai) {
var chai = require('lib');
}
var should = chai.should();
function err(fn, msg) {
try {
fn();
throw new chai.AssertionError({ message: 'Expected an error' });
} catch (err) {
should.equal(msg, err.message);
}
}
require([
'/support/suki.sprd/src/suki.sprd.js'
], function(sprd) {
sprd = sprd.init({
debug : false
});
console.log('sprd:debug', sprd);
suite('Connection', function() {
suite('API / suki.sprd', function() {
suite('.create()', function() {
test('.create(str)', function() {
sprd.connection
.create('sprd')
.end();
var conn = sprd.connection.use('sprd');
// ---
conn.get().should.contain.key('_name');
conn.get('_name').should.equal('sprd');
});
test('.create(str, {...})', function() {
sprd.connection
.create('sprd', {
a: 'a',
b: 'b'
})
.end();
var conn = sprd.connection.use('sprd');
// ---
conn.get().should.contain.key('_name');
conn.get('_name').should.equal('sprd');
conn.get().should.contain.key('a');
conn.get().should.contain.key('b');
conn.get('a').should.equal('a');
conn.get('b').should.equal('b');
});
});
suite('.use()', function() {
test('use()', function() {
sprd.connection
.create('sprd')
.end();
var conn = sprd.connection.use('sprd');
// ---
conn.get().should.contain.key('_name');
conn.get('_name').should.equal('sprd');
});
test('use(function() {...})', function(done) {
sprd.connection
.create('sprd')
.end();
sprd.connection.use('sprd', function() {
this.get().should.contain.key('_name');
this.get('_name').should.equal('sprd');
done();
});
});
test('use(function(err, obj) {...})', function(done) {
sprd.connection
.create('sprd')
.end();
sprd.connection.use('sprd', function(err, obj) {
obj.should.contain.key('_name');
obj._name.should.equal('sprd');
done();
});
});
});
});
suite('API', function() {
suite('.end()', function() {
test('.end()', function() {
sprd.connection
.create('sprd')
.end();
var conn = sprd.connection.use('sprd');
conn.get().should.contain.key('_name');
conn.get('_name').should.equal('sprd');
});
test('.end(function() {...})', function(done) {
sprd.connection
.create('sprd')
.end(function() {
this.get().should.contain.key('_name');
this.get('_name').should.equal('sprd');
done();
});
});
test('.end(function(err, obj) {...})', function(done) {
sprd.connection
.create('sprd')
.end(function(err, conn) {
conn.should.contain.key('_name');
conn._name.should.equal('sprd');
done();
});
});
});
suite('.api()', function() {
/*
Connection Defaults:
---
context : null,
contextId : null,
country : 'US',
endpoint : null,
id : null,
language : 'en',
locale : 'en_US',
platform : 'NA',
proxy : null,
type : 'json'
*/
suite('.get()', function() {
test('.get(str, function(err, obj) {...})', function(done) {
sprd.connection
.create('sprd', {
id : '6881a2fa-867b-48a5-8604-2b0e5ff43cb1',
context : 'shops',
contextId : '93439',
proxy : '/proxy/sprd/:platform/api/v1'
})
.end();
// ---
var conn = sprd.connection.use('sprd');
// ---
conn.api.get('/articles', function(err, res) {
console.log(6);
res.should.contain.key('body');
res.should.contain.key('header');
res.should.contain.key('ok');
res.should.contain.key('status');
res.should.contain.key('xhr');
res.body.should.be.a('object');
res.header.should.be.a('object');
res.ok.should.be.a('boolean');
res.status.should.be.a('object');
res.xhr.should.be.a('object');
// ---
res.ok.should.equal(true);
// ---
res.status.code.should.equal(200);
res.status.text.should.equal('success');
done();
});
});
});
suite('.post()', function() {
test('.post(str, {...}, function(err, obj) {...})', function(done) {
sprd.connection
.create('sprd', {
id : '6881a2fa-867b-48a5-8604-2b0e5ff43cb1',
proxy : '/proxy/sprd/:platform/api/v1'
})
.end();
// ---
var conn = sprd.connection.use('sprd');
// ---
console.log(0);
conn.api.post('/baskets', {
shop : conn.get('contextId')
}, function(err, res) {
console.log(1, res);
res.should.contain.key('body');
res.should.contain.key('header');
res.should.contain.key('ok');
res.should.contain.key('status');
res.should.contain.key('xhr');
res.body.should.be.a('object');
res.header.should.be.a('object');
res.ok.should.be.a('boolean');
res.status.should.be.a('object');
res.xhr.should.be.a('object');
// ---
res.ok.should.equal(true);
// ---
res.status.code.should.equal(201);
res.status.text.should.equal('success');
done();
});
});
});
suite('.put()', function() {
});
suite('.del()', function() {
});
});
});
});
});