UNPKG

fh-fhc

Version:

A Command Line Interface for FeedHenry

464 lines (456 loc) 18.6 kB
var assert = require('assert'); var genericCommand = require('genericCommand'); var commands = { create: genericCommand(require('cmd/fh3/admin/appstore/storeitems/create')), delete: genericCommand(require('cmd/fh3/admin/appstore/storeitems/delete')), read: genericCommand(require('cmd/fh3/admin/appstore/storeitems/read')), uploadicon: genericCommand(require('cmd/fh3/admin/appstore/storeitems/uploadicon')), uploadbinary: genericCommand(require('cmd/fh3/admin/appstore/storeitems/uploadbinary')), listpolicies: genericCommand(require('cmd/fh3/admin/appstore/storeitems/listpolicies')), update: genericCommand(require('cmd/fh3/admin/appstore/storeitems/update')), addgroups: genericCommand(require('cmd/fh3/admin/appstore/storeitems/addgroups')), delgroups: genericCommand(require('cmd/fh3/admin/appstore/storeitems/delgroups')), binaryversions: genericCommand(require('cmd/fh3/admin/appstore/storeitems/binaryversions')), grouprestrict: genericCommand(require('cmd/fh3/admin/appstore/storeitems/grouprestrict')), list: genericCommand(require('cmd/fh3/admin/appstore/storeitems/list')), add: genericCommand(require('cmd/fh3/admin/appstore/storeitems/add')), }; var nock = require('nock'); var dataList = { "count": 1, "list": [ { "authToken": "", "authpolicies": [ "xpzaqtip2ctewg3hudhiyeuv" ], "binaries": [ { "config": {}, "storeItemBinaryVersion": 20, "sysModified": "Wed Aug 09 16:39:39 UTC 2017", "type": "android", "url": "https://support.us.feedhenry.com/box/api/mas/storeitem/install?guid=3a7wyhulrutbqbzuenidqojv", "versions": [ { "config": {}, "destinationCode": "android", "storeItemBinaryGuid": "3a7wyhulrutbqbzuenidqojv", "storeItemBinaryModified": "Wed Aug 09 16:00:56 UTC 2017", "storeItemBinaryVersion": 19, "url": "https://support.us.feedhenry.com/box/api/mas/storeitem/install?guid=3a7wyhulrutbqbzuenidqojv&binversGuid=i7ln7jazwutnk2lynlenfnzr&download=true" }, { "config": {}, "destinationCode": "android", "storeItemBinaryGuid": "3a7wyhulrutbqbzuenidqojv", "storeItemBinaryModified": "Wed Aug 09 15:04:08 UTC 2017", "storeItemBinaryVersion": 18, "url": "https://support.us.feedhenry.com/box/api/mas/storeitem/install?guid=3a7wyhulrutbqbzuenidqojv&binversGuid=hcfbmcdj53aebfl5zvyoa2o6&download=true" }, { "config": {}, "destinationCode": "android", "storeItemBinaryGuid": "3a7wyhulrutbqbzuenidqojv", "storeItemBinaryModified": "Wed Aug 09 15:03:13 UTC 2017", "storeItemBinaryVersion": 17, "url": "https://support.us.feedhenry.com/box/api/mas/storeitem/install?guid=3a7wyhulrutbqbzuenidqojv&binversGuid=yg7hgyppyf66kluztweytpgn&download=true" }, { "config": {}, "destinationCode": "android", "storeItemBinaryGuid": "3a7wyhulrutbqbzuenidqojv", "storeItemBinaryModified": "Wed Aug 09 15:02:51 UTC 2017", "storeItemBinaryVersion": 16, "url": "https://support.us.feedhenry.com/box/api/mas/storeitem/install?guid=3a7wyhulrutbqbzuenidqojv&binversGuid=azx64ziyfdxrbhgtjjrlojlu&download=true" } ] }, { "config": {}, "storeItemBinaryVersion": 2, "sysModified": "Fri Mar 31 00:46:24 UTC 2017", "type": "ipad", "url": "https://support.us.feedhenry.com/box/api/mas/storeitem/install?guid=5ronmj35yeuracgzdslh22xu", "versions": [ { "config": {}, "destinationCode": "ipad", "storeItemBinaryGuid": "5ronmj35yeuracgzdslh22xu", "storeItemBinaryModified": "Fri Mar 31 00:44:42 UTC 2017", "storeItemBinaryVersion": 1, "url": "https://support.us.feedhenry.com/box/api/mas/storeitem/install?guid=5ronmj35yeuracgzdslh22xu&binversGuid=5h2myvsp72agfx4yckfzzwdt&download=true" } ] }, { "config": { "bundle_id": "" }, "storeItemBinaryVersion": 9, "sysModified": "Fri Mar 31 00:44:36 UTC 2017", "type": "iphone", "url": "https://support.us.feedhenry.com/box/api/mas/storeitem/install?guid=zn6pecfqhyktf2rzt52mpbyy", "versions": [ { "config": { "bundle_id": "" }, "destinationCode": "iphone", "storeItemBinaryGuid": "zn6pecfqhyktf2rzt52mpbyy", "storeItemBinaryModified": "Fri Mar 31 00:44:18 UTC 2017", "storeItemBinaryVersion": 8, "url": "https://support.us.feedhenry.com/box/api/mas/storeitem/install?guid=zn6pecfqhyktf2rzt52mpbyy&binversGuid=zf7prdqyavpqz7rvnyfla2c5&download=true" }, { "config": { "bundle_id": "" }, "destinationCode": "iphone", "storeItemBinaryGuid": "zn6pecfqhyktf2rzt52mpbyy", "storeItemBinaryModified": "Fri Mar 31 00:44:27 UTC 2017", "storeItemBinaryVersion": 9, "url": "https://support.us.feedhenry.com/box/api/mas/storeitem/install?guid=zn6pecfqhyktf2rzt52mpbyy&binversGuid=gejkapwmbys4ze7g5attkkjt&download=true" }, { "config": { "bundle_id": "" }, "destinationCode": "iphone", "storeItemBinaryGuid": "zn6pecfqhyktf2rzt52mpbyy", "storeItemBinaryModified": "Fri Mar 31 00:44:18 UTC 2017", "storeItemBinaryVersion": 8, "url": "https://support.us.feedhenry.com/box/api/mas/storeitem/install?guid=zn6pecfqhyktf2rzt52mpbyy&binversGuid=cdeqxcj3amtgqqznc2gqcvnn&download=true" }, { "config": { "bundle_id": "" }, "destinationCode": "iphone", "storeItemBinaryGuid": "zn6pecfqhyktf2rzt52mpbyy", "storeItemBinaryModified": "Fri Mar 31 00:43:09 UTC 2017", "storeItemBinaryVersion": 7, "url": "https://support.us.feedhenry.com/box/api/mas/storeitem/install?guid=zn6pecfqhyktf2rzt52mpbyy&binversGuid=q5ip7b2yelcgoewdmlfk3jxq&download=true" } ] } ], "description": "test", "groups": [ "64oj7wsmt5toh46rl3ni2ltz" ], "guid": "5w477lfgy3jrnovri7gctsb7", "icon": "", "name": "Push2", "notes": "", "requirements": "", "restrictToGroups": false, "screenshots": [], "support": {}, "version": "", "whatsNew": "" } ], "status": "ok" }; var iconFile = 'test/fixtures/admin/icon.jpg'; var binaryFile = 'test/fixtures/admin/binary.ipa'; var data = { "authToken": "", "authpolicies": [ "xpzaqtip2ctewg3hudhiyeuv" ], "binaries": [ { "config": {}, "storeItemBinaryVersion": 20, "sysModified": "Wed Aug 09 16:39:39 UTC 2017", "type": "android", "url": "https://support.us.feedhenry.com/box/api/mas/storeitem/install?guid=3a7wyhulrutbqbzuenidqojv", "versions": [ { "config": {}, "destinationCode": "android", "storeItemBinaryGuid": "3a7wyhulrutbqbzuenidqojv", "storeItemBinaryModified": "Wed Aug 09 16:00:56 UTC 2017", "storeItemBinaryVersion": 19, "url": "https://support.us.feedhenry.com/box/api/mas/storeitem/install?guid=3a7wyhulrutbqbzuenidqojv&binversGuid=i7ln7jazwutnk2lynlenfnzr&download=true" }, { "config": {}, "destinationCode": "android", "storeItemBinaryGuid": "3a7wyhulrutbqbzuenidqojv", "storeItemBinaryModified": "Wed Aug 09 15:04:08 UTC 2017", "storeItemBinaryVersion": 18, "url": "https://support.us.feedhenry.com/box/api/mas/storeitem/install?guid=3a7wyhulrutbqbzuenidqojv&binversGuid=hcfbmcdj53aebfl5zvyoa2o6&download=true" }, { "config": {}, "destinationCode": "android", "storeItemBinaryGuid": "3a7wyhulrutbqbzuenidqojv", "storeItemBinaryModified": "Wed Aug 09 15:03:13 UTC 2017", "storeItemBinaryVersion": 17, "url": "https://support.us.feedhenry.com/box/api/mas/storeitem/install?guid=3a7wyhulrutbqbzuenidqojv&binversGuid=yg7hgyppyf66kluztweytpgn&download=true" }, { "config": {}, "destinationCode": "android", "storeItemBinaryGuid": "3a7wyhulrutbqbzuenidqojv", "storeItemBinaryModified": "Wed Aug 09 15:02:51 UTC 2017", "storeItemBinaryVersion": 16, "url": "https://support.us.feedhenry.com/box/api/mas/storeitem/install?guid=3a7wyhulrutbqbzuenidqojv&binversGuid=azx64ziyfdxrbhgtjjrlojlu&download=true" } ] }, { "config": {}, "storeItemBinaryVersion": 2, "sysModified": "Fri Mar 31 00:46:24 UTC 2017", "type": "ipad", "url": "https://support.us.feedhenry.com/box/api/mas/storeitem/install?guid=5ronmj35yeuracgzdslh22xu", "versions": [ { "config": {}, "destinationCode": "ipad", "storeItemBinaryGuid": "5ronmj35yeuracgzdslh22xu", "storeItemBinaryModified": "Fri Mar 31 00:44:42 UTC 2017", "storeItemBinaryVersion": 1, "url": "https://support.us.feedhenry.com/box/api/mas/storeitem/install?guid=5ronmj35yeuracgzdslh22xu&binversGuid=5h2myvsp72agfx4yckfzzwdt&download=true" } ] }, { "config": { "bundle_id": "" }, "storeItemBinaryVersion": 9, "sysModified": "Fri Mar 31 00:44:36 UTC 2017", "type": "iphone", "url": "https://support.us.feedhenry.com/box/api/mas/storeitem/install?guid=zn6pecfqhyktf2rzt52mpbyy", "versions": [ { "config": { "bundle_id": "" }, "destinationCode": "iphone", "storeItemBinaryGuid": "zn6pecfqhyktf2rzt52mpbyy", "storeItemBinaryModified": "Fri Mar 31 00:44:18 UTC 2017", "storeItemBinaryVersion": 8, "url": "https://support.us.feedhenry.com/box/api/mas/storeitem/install?guid=zn6pecfqhyktf2rzt52mpbyy&binversGuid=zf7prdqyavpqz7rvnyfla2c5&download=true" }, { "config": { "bundle_id": "" }, "destinationCode": "iphone", "storeItemBinaryGuid": "zn6pecfqhyktf2rzt52mpbyy", "storeItemBinaryModified": "Fri Mar 31 00:44:27 UTC 2017", "storeItemBinaryVersion": 9, "url": "https://support.us.feedhenry.com/box/api/mas/storeitem/install?guid=zn6pecfqhyktf2rzt52mpbyy&binversGuid=gejkapwmbys4ze7g5attkkjt&download=true" }, { "config": { "bundle_id": "" }, "destinationCode": "iphone", "storeItemBinaryGuid": "zn6pecfqhyktf2rzt52mpbyy", "storeItemBinaryModified": "Fri Mar 31 00:44:18 UTC 2017", "storeItemBinaryVersion": 8, "url": "https://support.us.feedhenry.com/box/api/mas/storeitem/install?guid=zn6pecfqhyktf2rzt52mpbyy&binversGuid=cdeqxcj3amtgqqznc2gqcvnn&download=true" }, { "config": { "bundle_id": "" }, "destinationCode": "iphone", "storeItemBinaryGuid": "zn6pecfqhyktf2rzt52mpbyy", "storeItemBinaryModified": "Fri Mar 31 00:43:09 UTC 2017", "storeItemBinaryVersion": 7, "url": "https://support.us.feedhenry.com/box/api/mas/storeitem/install?guid=zn6pecfqhyktf2rzt52mpbyy&binversGuid=q5ip7b2yelcgoewdmlfk3jxq&download=true" } ] } ], "description": "test", "groups": [ "64oj7wsmt5toh46rl3ni2ltz" ], "guid": "5w477lfgy3jrnovri7gctsb7", "icon": "", "name": "Push2", "notes": "", "requirements": "", "restrictToGroups": false, "screenshots": [], "status": "ok", "support": {}, "version": "", "whatsNew": "" }; module.exports = nock('https://apps.feedhenry.com') .post('/box/srv/1.1/admin/storeitem/create') .reply(200, {}) .post('/box/srv/1.1/admin/storeitem/delete') .reply(200, {}) .get('/box/srv/1.1/admin/storeitem/list') .times(2) .reply(200, dataList) .post('/box/srv/1.1/admin/storeitem/listpolicies') .reply(200, {}) .post('/box/srv/1.1/admin/storeitem/read') .times(4) .reply(200, data) .post('/box/srv/1.1/admin/storeitem/addgroups') .reply(200, {}) .post('/box/srv/1.1/admin/storeitem/removegroups') .reply(200, {}) .post('/box/srv/1.1/admin/storeitem/grouprestrict') .times(2) .reply(200, data) .post('/box/srv/1.1/admin/storeitem/delete') .reply(200, {}) .post('/box/srv/1.1/admin/storeitem/uploadbinary') .times(2) .reply(200, {}) .post('/box/srv/1.1/admin/storeitem/update') .times(2) .reply(200, data) .post('/box/srv/1.1/admin/appstore/additem') .reply(200, { "status": "ok" }); module.exports = { 'test fhc admin appstore storeitems create --name=<name> --json': function(cb) { commands.create({name:"name",json:true}, function(err, data) { assert.equal(err, null); assert.equal(data._table,null); return cb(); }); }, 'test fhc admin appstore storeitems delete --id --json': function(cb) { commands.delete({id:"guid",json:true}, function(err, data) { assert.equal(err, null); assert.equal(data._table,null); return cb(); }); }, 'test fhc admin appstore storeitems list': function(cb) { commands.list({}, function(err, data) { assert.equal(err, null); assert.equal(data.status, "ok"); var table = data._table; assert.equal(table['0'][0], '5w477lfgy3jrnovri7gctsb7'); assert.equal(table['0'][1], 'Push2'); assert.equal(table['0'][2], 'test'); assert.equal(table['0'][3], 'xpzaqtip2ctewg3hudhiyeuv'); assert.equal(table['0'][4], 'No'); return cb(); }); }, 'test fhc admin appstore storeitems list --json': function(cb) { commands.list({json:true}, function(err, data) { assert.equal(err, null); assert.equal(data._table,null); return cb(); }); }, 'test fhc admin appstore storeitems read --id': function(cb) { commands.read({id:'5w477lfgy3jrnovri7gctsb7'}, function(err, data) { assert.equal(err, null); assert.equal(data.status, "ok"); var table = data._table; assert.equal(table['0'][0], '5w477lfgy3jrnovri7gctsb7'); assert.equal(table['0'][1], 'Push2'); assert.equal(table['0'][2], 'test'); assert.equal(table['0'][3], 'xpzaqtip2ctewg3hudhiyeuv'); assert.equal(table['0'][4], 'No'); return cb(); }); }, 'test fhc admin appstore storeitems read --id --json': function(cb) { commands.read({id:'5w477lfgy3jrnovri7gctsb7',json:true}, function(err, data) { assert.equal(err, null); assert.equal(data._table,null); assert.equal(data.status, "ok"); return cb(); }); }, 'test fhc admin appstore storeitems delete --id=<id> --json': function(cb) { commands.delete({id:'5w477lfgy3jrnovri7gctsb7',json:true}, function(err, data) { assert.equal(err, null); assert.equal(data._table,null); return cb(); }); }, 'test admin appstore storeitems update --id=<id> --name=<name> --description=<description> --authToken=<authToken> --restrictToGroups=<true|false>': function(cb) { commands.update({id:'5w477lfgy3jrnovri7gctsb7',name:'Push2', description:'test',json:true}, function(err, data) { assert.equal(err, null); assert.equal(data.status, "ok"); assert.equal(data._table,null); return cb(); }); }, 'test admin appstore storeitems listpolicies --id=<id>': function(cb) { commands.listpolicies({id:'5w477lfgy3jrnovri7gctsb7'}, function(err, data) { assert.equal(err, null); return cb(); }); }, 'test fhc admin appstore storeitems uploadicon --id=<id> --icon=<icon>': function(cb) { commands.uploadicon({id:'5w477lfgy3jrnovri7gctsb7', icon:iconFile}, function(err) { assert.equal(err, null); return cb(); }); }, 'test fhc admin appstore storeitems uploadbinary --id=<id> --icon=<icon>': function(cb) { commands.uploadbinary({id:'5w477lfgy3jrnovri7gctsb7', binary:binaryFile, type:'android'}, function(err) { assert.equal(err, null); return cb(); }); }, 'test fhc admin appstore storeitems addgroups --id=<id> --group=<group>': function(cb) { commands.addgroups({id:'5w477lfgy3jrnovri7gctsb7',group :'5w477lfgy3jrnovri7gctsb7'}, function(err) { assert.equal(err, null); return cb(); }); }, 'test fhc admin appstore storeitems delgroups --id=<id> --group=<group>': function(cb) { commands.delgroups({id:'5w477lfgy3jrnovri7gctsb7',group :'5w477lfgy3jrnovri7gctsb7'}, function(err) { assert.equal(err, null); return cb(); }); }, 'test fhc admin appstore storeitems binaryversions --id': function(cb) { commands.binaryversions({id:'5w477lfgy3jrnovri7gctsb7'}, function(err) { assert.equal(err, null); return cb(); }); }, 'test fhc admin appstore storeitems grouprestrict --id --restrictToGroups ': function(cb) { commands.grouprestrict({id:'5w477lfgy3jrnovri7gctsb7', restrictToGroups:false}, function(err, data) { assert.equal(err, null); var table = data._table; assert.equal(table['0'][0], '5w477lfgy3jrnovri7gctsb7'); assert.equal(table['0'][1], 'Push2'); assert.equal(table['0'][2], 'test'); assert.equal(table['0'][3], 'xpzaqtip2ctewg3hudhiyeuv'); assert.equal(table['0'][4], 'No'); return cb(); }); }, 'test fhc admin appstore storeitems grouprestrict --id --restrictToGroups --json ': function(cb) { commands.grouprestrict({id:'5w477lfgy3jrnovri7gctsb7', restrictToGroups :false, json:true}, function(err) { assert.equal(err, null); assert.equal(data._table,null); return cb(); }); }, 'test fhc admin appstore storeitems add --id --json': function(cb) { commands.add({id:'5w477lfgy3jrnovri7gctsb7',json:true}, function(err, data) { assert.equal(err, null); assert.equal(data._table,null); assert.equal(data.status, "ok"); return cb(); }); }, };