OLD | NEW |
1 'use strict'; | 1 'use strict'; |
2 | 2 |
3 (function() { | 3 (function() { |
4 | 4 |
5 // Helpers | 5 // Helpers |
6 // Verify that an expected Error was found. | 6 // Verify that an expected Error was found. |
7 var ERROR = function(errString, done) { | 7 var ERROR = function(errString, done) { |
8 return function(result) { | 8 return function(result) { |
9 assert.equal(errString, result.error); | 9 assert.equal(errString, result.error); |
10 done(); | 10 done(); |
(...skipping 27 matching lines...) Expand all Loading... |
38 fakebackend = new environmentsModule.FakeBackend(); | 38 fakebackend = new environmentsModule.FakeBackend(); |
39 assert.equal(fakebackend.get('authenticated'), false); | 39 assert.equal(fakebackend.get('authenticated'), false); |
40 assert.equal(fakebackend.login('admin', 'not my password'), false); | 40 assert.equal(fakebackend.login('admin', 'not my password'), false); |
41 assert.equal(fakebackend.get('authenticated'), false); | 41 assert.equal(fakebackend.get('authenticated'), false); |
42 }); | 42 }); |
43 }); | 43 }); |
44 | 44 |
45 describe('FakeBackend.deploy', function() { | 45 describe('FakeBackend.deploy', function() { |
46 var requires = [ | 46 var requires = [ |
47 'node', 'juju-tests-utils', 'juju-models', 'juju-charm-models']; | 47 'node', 'juju-tests-utils', 'juju-models', 'juju-charm-models']; |
48 var Y, fakebackend, utils, setCharm, result, callback; | 48 var Y, fakebackend, utils, result, callback; |
49 | 49 |
50 before(function(done) { | 50 before(function(done) { |
51 Y = YUI(GlobalConfig).use(requires, function(Y) { | 51 Y = YUI(GlobalConfig).use(requires, function(Y) { |
52 utils = Y.namespace('juju-tests.utils'); | 52 utils = Y.namespace('juju-tests.utils'); |
53 done(); | 53 done(); |
54 }); | 54 }); |
55 }); | 55 }); |
56 | 56 |
57 beforeEach(function() { | 57 beforeEach(function() { |
58 var setupData = utils.makeFakeBackendWithCharmStore(); | 58 fakebackend = utils.makeFakeBackendWithCharmStore(); |
59 fakebackend = setupData.fakebackend; | |
60 setCharm = setupData.setCharm; | |
61 result = undefined; | 59 result = undefined; |
62 callback = function(response) { result = response; }; | 60 callback = function(response) { result = response; }; |
63 }); | 61 }); |
64 | 62 |
65 afterEach(function() { | 63 afterEach(function() { |
66 fakebackend.destroy(); | 64 fakebackend.destroy(); |
67 }); | 65 }); |
68 | 66 |
69 it('rejects unauthenticated calls', function() { | 67 it('rejects unauthenticated calls', function() { |
70 fakebackend.logout(); | 68 fakebackend.logout(); |
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
222 'JS-YAML: end of the stream or a document separator is expected ' + | 220 'JS-YAML: end of the stream or a document separator is expected ' + |
223 'at line 1, column 10:\n' + | 221 'at line 1, column 10:\n' + |
224 ' auto_id: %n\n' + | 222 ' auto_id: %n\n' + |
225 ' ^'); | 223 ' ^'); |
226 }); | 224 }); |
227 }); | 225 }); |
228 | 226 |
229 describe('FakeBackend.uniformOperations', function() { | 227 describe('FakeBackend.uniformOperations', function() { |
230 var requires = [ | 228 var requires = [ |
231 'node', 'juju-tests-utils', 'juju-models', 'juju-charm-models']; | 229 'node', 'juju-tests-utils', 'juju-models', 'juju-charm-models']; |
232 var Y, fakebackend, utils, setCharm; | 230 var Y, fakebackend, utils; |
233 | 231 |
234 before(function(done) { | 232 before(function(done) { |
235 Y = YUI(GlobalConfig).use(requires, function(Y) { | 233 Y = YUI(GlobalConfig).use(requires, function(Y) { |
236 utils = Y.namespace('juju-tests.utils'); | 234 utils = Y.namespace('juju-tests.utils'); |
237 done(); | 235 done(); |
238 }); | 236 }); |
239 }); | 237 }); |
240 | 238 |
241 beforeEach(function() { | 239 beforeEach(function() { |
242 var setupData = utils.makeFakeBackendWithCharmStore(); | 240 fakebackend = utils.makeFakeBackendWithCharmStore(); |
243 fakebackend = setupData.fakebackend; | |
244 setCharm = setupData.setCharm; | |
245 }); | 241 }); |
246 | 242 |
247 afterEach(function() { | 243 afterEach(function() { |
248 fakebackend.destroy(); | 244 fakebackend.destroy(); |
249 }); | 245 }); |
250 | 246 |
251 describe('FakeBackend.resolved', function(done) { | 247 describe('FakeBackend.resolved', function(done) { |
252 | 248 |
253 it('rejects unauthenticated calls', function() { | 249 it('rejects unauthenticated calls', function() { |
254 fakebackend.logout(); | 250 fakebackend.logout(); |
(...skipping 24 matching lines...) Expand all Loading... |
279 it('disallows malformed charm names', function(done) { | 275 it('disallows malformed charm names', function(done) { |
280 fakebackend.getCharm('^invalid', ERROR('Invalid charm id.', done)); | 276 fakebackend.getCharm('^invalid', ERROR('Invalid charm id.', done)); |
281 }); | 277 }); |
282 | 278 |
283 it('successfully returns valid charms', function(done) { | 279 it('successfully returns valid charms', function(done) { |
284 fakebackend.getCharm('cs:wordpress', function(data) { | 280 fakebackend.getCharm('cs:wordpress', function(data) { |
285 assert.equal(data.result.name, 'wordpress'); | 281 assert.equal(data.result.name, 'wordpress'); |
286 done(); | 282 done(); |
287 }); | 283 }); |
288 }); | 284 }); |
| 285 |
| 286 it('loads subordinate charms properly', function(done) { |
| 287 fakebackend.getCharm('cs:puppet', function(data) { |
| 288 assert.equal(data.result.name, 'puppet'); |
| 289 assert.isTrue(data.result.is_subordinate); |
| 290 done(); |
| 291 }); |
| 292 }); |
289 }); | 293 }); |
290 | 294 |
291 describe('FakeBackend.getService', function() { | 295 describe('FakeBackend.getService', function() { |
292 it('rejects unauthenticated calls', function() { | 296 it('rejects unauthenticated calls', function() { |
293 fakebackend.logout(); | 297 fakebackend.logout(); |
294 var result = fakebackend.getService('cs:wordpress'); | 298 var result = fakebackend.getService('cs:wordpress'); |
295 assert.equal(result.error, 'Please log in.'); | 299 assert.equal(result.error, 'Please log in.'); |
296 }); | 300 }); |
297 | 301 |
298 it('returns an error for a missing service', function() { | 302 it('returns an error for a missing service', function() { |
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
527 done(); | 531 done(); |
528 }); | 532 }); |
529 | 533 |
530 }); | 534 }); |
531 }); | 535 }); |
532 }); | 536 }); |
533 | 537 |
534 describe('FakeBackend.addUnit', function() { | 538 describe('FakeBackend.addUnit', function() { |
535 var requires = [ | 539 var requires = [ |
536 'node', 'juju-tests-utils', 'juju-models', 'juju-charm-models']; | 540 'node', 'juju-tests-utils', 'juju-models', 'juju-charm-models']; |
537 var Y, fakebackend, utils, setCharm, deployResult, callback; | 541 var Y, fakebackend, utils, deployResult, callback; |
538 | 542 |
539 before(function(done) { | 543 before(function(done) { |
540 Y = YUI(GlobalConfig).use(requires, function(Y) { | 544 Y = YUI(GlobalConfig).use(requires, function(Y) { |
541 utils = Y.namespace('juju-tests.utils'); | 545 utils = Y.namespace('juju-tests.utils'); |
542 done(); | 546 done(); |
543 }); | 547 }); |
544 }); | 548 }); |
545 | 549 |
546 beforeEach(function() { | 550 beforeEach(function() { |
547 var setupData = utils.makeFakeBackendWithCharmStore(); | 551 fakebackend = utils.makeFakeBackendWithCharmStore(); |
548 fakebackend = setupData.fakebackend; | |
549 setCharm = setupData.setCharm; | |
550 deployResult = undefined; | 552 deployResult = undefined; |
551 callback = function(response) { deployResult = response; }; | 553 callback = function(response) { deployResult = response; }; |
552 }); | 554 }); |
553 | 555 |
554 afterEach(function() { | 556 afterEach(function() { |
555 fakebackend.destroy(); | 557 fakebackend.destroy(); |
556 }); | 558 }); |
557 | 559 |
558 it('rejects unauthenticated calls', function() { | 560 it('rejects unauthenticated calls', function() { |
559 fakebackend.logout(); | 561 fakebackend.logout(); |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
622 assert.equal(result.units[3].id, 'wordpress/4'); | 624 assert.equal(result.units[3].id, 'wordpress/4'); |
623 assert.equal(result.units[4].id, 'wordpress/5'); | 625 assert.equal(result.units[4].id, 'wordpress/5'); |
624 assert.lengthOf(result.machines, 5); | 626 assert.lengthOf(result.machines, 5); |
625 }); | 627 }); |
626 | 628 |
627 }); | 629 }); |
628 | 630 |
629 describe('FakeBackend.next*', function() { | 631 describe('FakeBackend.next*', function() { |
630 var requires = [ | 632 var requires = [ |
631 'node', 'juju-tests-utils', 'juju-models', 'juju-charm-models']; | 633 'node', 'juju-tests-utils', 'juju-models', 'juju-charm-models']; |
632 var Y, fakebackend, utils, setCharm, deployResult, callback; | 634 var Y, fakebackend, utils, deployResult, callback; |
633 | 635 |
634 before(function(done) { | 636 before(function(done) { |
635 Y = YUI(GlobalConfig).use(requires, function(Y) { | 637 Y = YUI(GlobalConfig).use(requires, function(Y) { |
636 utils = Y.namespace('juju-tests.utils'); | 638 utils = Y.namespace('juju-tests.utils'); |
637 done(); | 639 done(); |
638 }); | 640 }); |
639 }); | 641 }); |
640 | 642 |
641 beforeEach(function() { | 643 beforeEach(function() { |
642 var setupData = utils.makeFakeBackendWithCharmStore(); | 644 fakebackend = utils.makeFakeBackendWithCharmStore(); |
643 fakebackend = setupData.fakebackend; | |
644 setCharm = setupData.setCharm; | |
645 deployResult = undefined; | 645 deployResult = undefined; |
646 callback = function(response) { deployResult = response; }; | 646 callback = function(response) { deployResult = response; }; |
647 }); | 647 }); |
648 | 648 |
649 afterEach(function() { | 649 afterEach(function() { |
650 fakebackend.destroy(); | 650 fakebackend.destroy(); |
651 }); | 651 }); |
652 | 652 |
653 describe('FakeBackend.nextChanges', function() { | 653 describe('FakeBackend.nextChanges', function() { |
654 it('rejects unauthenticated calls.', function() { | 654 it('rejects unauthenticated calls.', function() { |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
748 var changes = fakebackend.nextAnnotations(); | 748 var changes = fakebackend.nextAnnotations(); |
749 assert.deepEqual(changes.annotations.env, | 749 assert.deepEqual(changes.annotations.env, |
750 [fakebackend.db.environment, true]); | 750 [fakebackend.db.environment, true]); |
751 }); | 751 }); |
752 }); | 752 }); |
753 }); | 753 }); |
754 | 754 |
755 describe('FakeBackend.addRelation', function() { | 755 describe('FakeBackend.addRelation', function() { |
756 var requires = [ | 756 var requires = [ |
757 'node', 'juju-tests-utils', 'juju-models', 'juju-charm-models']; | 757 'node', 'juju-tests-utils', 'juju-models', 'juju-charm-models']; |
758 var Y, fakebackend, utils, setCharm, deployResult, callback; | 758 var Y, fakebackend, utils, deployResult, callback; |
759 | 759 |
760 before(function(done) { | 760 before(function(done) { |
761 Y = YUI(GlobalConfig).use(requires, function(Y) { | 761 Y = YUI(GlobalConfig).use(requires, function(Y) { |
762 utils = Y.namespace('juju-tests.utils'); | 762 utils = Y.namespace('juju-tests.utils'); |
763 done(); | 763 done(); |
764 }); | 764 }); |
765 }); | 765 }); |
766 | 766 |
767 beforeEach(function() { | 767 beforeEach(function() { |
768 var setupData = utils.makeFakeBackendWithCharmStore(); | 768 fakebackend = utils.makeFakeBackendWithCharmStore(); |
769 fakebackend = setupData.fakebackend; | |
770 setCharm = setupData.setCharm; | |
771 deployResult = undefined; | 769 deployResult = undefined; |
772 callback = function(response) { deployResult = response; }; | 770 callback = function(response) { deployResult = response; }; |
773 }); | 771 }); |
774 | 772 |
775 afterEach(function() { | 773 afterEach(function() { |
776 fakebackend.destroy(); | 774 fakebackend.destroy(); |
777 }); | 775 }); |
778 | 776 |
779 function createRelation(charms, relation, mock, done) { | 777 function createRelation(charms, relation, mock, done) { |
780 fakebackend.deploy(charms[0], function() { | 778 fakebackend.deploy(charms[0], function() { |
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1017 endpoints: | 1015 endpoints: |
1018 [['puppet', {name: 'juju-info'}], | 1016 [['puppet', {name: 'juju-info'}], |
1019 ['wordpress', {name: 'juju-info'}]]}, | 1017 ['wordpress', {name: 'juju-info'}]]}, |
1020 done); | 1018 done); |
1021 }); | 1019 }); |
1022 | 1020 |
1023 }); | 1021 }); |
1024 | 1022 |
1025 | 1023 |
1026 })(); | 1024 })(); |
OLD | NEW |