UNPKG

1.85 kBJavaScriptView Raw
1var assert = require('assert');
2var async = require('async');
3var sinon = require('sinon');
4var shortid = require('shortid');
5var _ = require('lodash');
6var log = require('../lib/log');
7var fs = require('fs');
8var request = require('request');
9var inquirer = require('inquirer');
10var deleteApp = require('../commands/delete-app');
11
12require('dash-assert');
13
14describe('delete-app', function() {
15 var self;
16
17 beforeEach(function() {
18 self = this;
19
20 this.appName = 'test-app';
21
22 this.program = {
23 profile: {
24 name: 'default',
25 endpoint: 'https://apphost.com/',
26 jwt: {
27 token: '23523454'
28 }
29 },
30 virtualApp: {
31 appId: shortid.generate(),
32 name: this.appName
33 }
34 };
35
36 this.mockAnswers = {
37 appName: self.appName
38 };
39
40 this.mockInquirer = require('./mock-inquirer')(this.mockAnswers);
41
42 sinon.stub(inquirer, 'prompt', this.mockInquirer.prompt);
43 sinon.stub(request, 'del').yields(null, {statusCode:201});
44 });
45
46 afterEach(function() {
47 request.del.restore();
48 inquirer.prompt.restore();
49 });
50
51 before(function() {
52 sinon.stub(log, 'write', _.noop());
53 });
54
55 after(function() {
56 log.write.restore();
57 });
58
59 it('deletes app when name matches', function(done) {
60 deleteApp(this.program, function(err) {
61 if (err) return done(err);
62
63 assert.isTrue(request.del.calledWith(
64 sinon.match({url: 'https://apphost.com/api/apps/' + self.program.virtualApp.appId})))
65
66 done();
67 });
68 });
69
70 it('throws error when entered app name does not match', function(done) {
71 this.mockAnswers.appName = "foo";
72
73 deleteApp(this.program, function(err) {
74 assert.ok(err);
75 assert.ok(/app name you entered does not match/.test(err.message));
76 assert.isFalse(request.del.called);
77
78 done();
79 });
80 });
81});