loopback-component-package
Version:
Package/Pricing management for loopback API server
62 lines (57 loc) • 2.61 kB
JavaScript
var chai = require('chai');
var expect = chai.expect;
var loopback = require('loopback');
var Package,PackageUsage;
describe('package',function(){
this.timeout(15000);
var app = null;
beforeEach(setupAppAndModels=(done)=>{
app = loopback({localRegistry: true, loadBuiltinModels: true});
app.set('remoting', {errorHandler: {debug: true, log: false}});
app.dataSource('db', {connector: 'memory'});
Package = require('../models/package')(app.registry.createModel(require('../models/package.json')));
PackageUsage = require('../models/package-usage')(app.registry.createModel(require('../models/package-usage.json')));
app.model(Package, {dataSource: 'db'});
app.model(PackageUsage, {dataSource: 'db'});
done();
});
it('Create a new package', function() {
return Package.createPackage('SMS-Package','semiyearly',true).then(function(package){
expect(package.name);
expect(package.type);
expect(package.reset);
});
});
it('Register a Package', function() {
return Package.createPackage('SMS-Package','semiyearly',true).then(function(package){
return Package.registerPackage(package.id,500,true,62).then(function(packageUsage){
expect(packageUsage.token);
});
});
});
it('Unregister a package', function() {
return Package.createPackage('SMS-Package','semiyearly',true).then(function(package){
return Package.registerPackage(package.id,500,true,62).then(function(packageUsage){
return Package.unregisterPackage(packageUsage.token);
});
});
});
it('use package', function() {
return Package.createPackage('SMS-Package','semiyearly',true).then(function(package){
return Package.registerPackage(package.id,500,true,62).then(function(packageUsage){
Package.use(packageUsage.token,3).then(function(res){
expect(res.count).to.equal(65);
})
});
});
});
it('unuse package', function() {
return Package.createPackage('SMS-Package','semiyearly',true).then(function(package){
return Package.registerPackage(package.id,500,true,62).then(function(packageUsage){
Package.unuse(packageUsage.token,3).then(function(res){
expect(res.count).to.equal(59);
});
});
});
});
});