Skip to content

Commit 3e84b8b

Browse files
committed
fix(addons): merged heroku/heroku-cli-addons#93
1 parent 2fdefc5 commit 3e84b8b

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

packages/addons-v5/test/commands/addons/upgrade.js

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,14 @@
33

44
let cmd = commands.find((c) => c.topic === 'addons' && c.command === 'upgrade')
55
let expect = require('unexpected')
6+
let cache = require('../../../lib/resolve').addon.cache
7+
68
describe('addons:upgrade', () => {
7-
beforeEach(() => cli.mockConsole())
9+
beforeEach(() => {
10+
cli.mockConsole()
11+
cache.clear()
12+
})
13+
814
afterEach(() => nock.cleanAll())
915

1016
it('upgrades an add-on', () => {
@@ -20,6 +26,19 @@ describe('addons:upgrade', () => {
2026
.then(() => api.done())
2127
})
2228

29+
it('upgrades to a contract add-on', () => {
30+
let addon = {name: 'connect-swiftly-123', addon_service: {name: 'heroku-connect'}, app: {name: 'myapp'}, plan: {name: 'free'}}
31+
32+
let api = nock('https://api.heroku.com:443')
33+
.post('/actions/addons/resolve', {'app': 'myapp', 'addon': 'heroku-connect'}).reply(200, [addon])
34+
.patch('/apps/myapp/addons/connect-swiftly-123', {plan: {name: 'heroku-connect:contract'}})
35+
.reply(200, {plan: {price: {cents: 0, contract: true}}, provision_message: 'provision msg'})
36+
return cmd.run({app: 'myapp', args: {addon: 'heroku-connect', plan: 'heroku-connect:contract'}})
37+
.then(() => expect(cli.stdout, 'to equal', 'provision msg\n'))
38+
.then(() => expect(cli.stderr, 'to equal', 'Changing connect-swiftly-123 on myapp from free to heroku-connect:contract... done, contract\n'))
39+
.then(() => api.done())
40+
})
41+
2342
it('upgrades an add-on with only one argument', () => {
2443
let addon = {name: 'postgresql-swiftly-123', addon_service: {name: 'heroku-postgresql'}, app: {name: 'myapp'}, plan: {name: 'premium-0'}}
2544

0 commit comments

Comments
 (0)