Left: | ||
Right: |
OLD | NEW |
---|---|
1 /* | 1 /* |
2 This file is part of the Juju GUI, which lets users view and manage Juju | 2 This file is part of the Juju GUI, which lets users view and manage Juju |
3 environments within a graphical interface (https://launchpad.net/juju-gui). | 3 environments within a graphical interface (https://launchpad.net/juju-gui). |
4 Copyright (C) 2012-2013 Canonical Ltd. | 4 Copyright (C) 2012-2013 Canonical Ltd. |
5 | 5 |
6 This program is free software: you can redistribute it and/or modify it under | 6 This program is free software: you can redistribute it and/or modify it under |
7 the terms of the GNU Affero General Public License version 3, as published by | 7 the terms of the GNU Affero General Public License version 3, as published by |
8 the Free Software Foundation. | 8 the Free Software Foundation. |
9 | 9 |
10 This program is distributed in the hope that it will be useful, but WITHOUT | 10 This program is distributed in the hope that it will be useful, but WITHOUT |
(...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
296 fakebackend.db.units.each(function(unit) { | 296 fakebackend.db.units.each(function(unit) { |
297 unit.agent_state = 'error'; | 297 unit.agent_state = 'error'; |
298 }); | 298 }); |
299 fakebackend.setCharm('wordpress', 'cs:precise/mediawiki-6', true, | 299 fakebackend.setCharm('wordpress', 'cs:precise/mediawiki-6', true, |
300 callback); | 300 callback); |
301 assert.isUndefined(result.error); | 301 assert.isUndefined(result.error); |
302 assert.equal(service.get('charm'), 'cs:precise/mediawiki-6'); | 302 assert.equal(service.get('charm'), 'cs:precise/mediawiki-6'); |
303 }); | 303 }); |
304 }); | 304 }); |
305 | 305 |
306 describe('FakeBackend.expose', function() { | |
307 var requires = [ | |
308 'node', 'juju-tests-utils', 'juju-models', 'juju-charm-models']; | |
309 var Y, fakebackend, utils, result, callback, service; | |
310 | |
311 before(function(done) { | |
312 Y = YUI(GlobalConfig).use(requires, function(Y) { | |
313 utils = Y.namespace('juju-tests.utils'); | |
314 done(); | |
315 }); | |
316 }); | |
317 | |
318 beforeEach(function() { | |
319 fakebackend = utils.makeFakeBackendWithCharmStore(); | |
320 result = undefined; | |
321 callback = function(response) { result = response; }; | |
322 fakebackend.deploy('cs:precise/wordpress-10', callback); | |
323 service = fakebackend.db.services.getById('wordpress'); | |
324 }); | |
325 | |
326 afterEach(function() { | |
327 fakebackend.destroy(); | |
328 }); | |
329 | |
330 it('rejects unauthenticated calls', function() { | |
331 fakebackend.logout(); | |
jeff.pihach
2013/06/24 19:56:08
Just to be on the safe side we should probably che
bac
2013/06/25 13:06:05
Boo! Hiss!
| |
332 var result = fakebackend.expose('wordpress'); | |
333 assert.equal(result.error, 'Please log in.'); | |
334 }); | |
335 | |
336 it('exposes a service', function() { | |
337 assert.isFalse(service.get('exposed')); | |
338 var result = fakebackend.expose('wordpress'); | |
339 assert.isTrue(service.get('exposed')); | |
340 assert.isUndefined(result.error); | |
341 assert.isUndefined(result.warning); | |
342 }); | |
343 | |
344 it('errors on invalid service', function() { | |
345 var result = fakebackend.expose('Je ne suis pas un service'); | |
346 assert.equal( | |
347 '`Je ne suis pas un service` is an invalid service name.', | |
teknico
2013/06/25 11:09:40
Slightly unusual usage of backquotes. Maybe double
bac
2013/06/25 13:06:05
The test is merely testing what the fakebackend wa
| |
348 result.error); | |
349 assert.isUndefined(result.warning); | |
350 }); | |
351 | |
352 it('warns if a service is already exposed', function() { | |
353 assert.isFalse(service.get('exposed')); | |
354 var result = fakebackend.expose('wordpress'); | |
355 assert.isTrue(service.get('exposed')); | |
356 result = fakebackend.expose('wordpress'); | |
357 assert.isUndefined(result.error); | |
358 assert.equal( | |
359 'Service `wordpress` was already exposed.', | |
teknico
2013/06/25 11:09:40
As above re: backquotes.
| |
360 result.warning); | |
361 }); | |
362 }); | |
363 | |
364 describe('FakeBackend.unexpose', function() { | |
365 var requires = [ | |
366 'node', 'juju-tests-utils', 'juju-models', 'juju-charm-models']; | |
367 var Y, fakebackend, utils, result, callback, service; | |
368 | |
369 before(function(done) { | |
370 Y = YUI(GlobalConfig).use(requires, function(Y) { | |
371 utils = Y.namespace('juju-tests.utils'); | |
372 done(); | |
373 }); | |
374 }); | |
375 | |
376 beforeEach(function() { | |
377 fakebackend = utils.makeFakeBackendWithCharmStore(); | |
378 result = undefined; | |
379 callback = function(response) { result = response; }; | |
380 fakebackend.deploy('cs:precise/wordpress-10', callback); | |
381 service = fakebackend.db.services.getById('wordpress'); | |
382 }); | |
383 | |
384 afterEach(function() { | |
385 fakebackend.destroy(); | |
386 }); | |
387 | |
388 it('rejects unauthenticated calls', function() { | |
389 fakebackend.logout(); | |
jeff.pihach
2013/06/24 19:56:08
again as above, should probably check to make sure
| |
390 var result = fakebackend.unexpose('wordpress'); | |
391 assert.equal(result.error, 'Please log in.'); | |
392 }); | |
393 | |
394 it('unexposes a service', function() { | |
395 assert.isFalse(service.get('exposed')); | |
396 var result = fakebackend.expose('wordpress'); | |
397 assert.isTrue(service.get('exposed')); | |
398 result = fakebackend.unexpose('wordpress'); | |
399 assert.isFalse(service.get('exposed')); | |
400 assert.isUndefined(result.error); | |
401 assert.isUndefined(result.warning); | |
402 }); | |
403 | |
404 it('errors on invalid service', function() { | |
405 var result = fakebackend.unexpose('Je ne suis pas un service'); | |
406 assert.equal( | |
407 '`Je ne suis pas un service` is an invalid service name.', | |
teknico
2013/06/25 11:09:40
As above re: backquotes.
| |
408 result.error); | |
409 assert.isUndefined(result.warning); | |
410 }); | |
411 | |
412 it('warns if a service is already unexposed', function() { | |
413 assert.isFalse(service.get('exposed')); | |
414 var result = fakebackend.unexpose('wordpress'); | |
415 assert.isFalse(service.get('exposed')); | |
416 assert.isUndefined(result.error); | |
417 assert.equal( | |
418 'Service `wordpress` is not exposed.', | |
teknico
2013/06/25 11:09:40
As above re: backquotes.
| |
419 result.warning); | |
420 }); | |
421 }); | |
422 | |
306 describe('FakeBackend.uniformOperations', function() { | 423 describe('FakeBackend.uniformOperations', function() { |
307 var requires = ['node', | 424 var requires = ['node', |
308 'juju-tests-utils', 'juju-models', 'juju-charm-models']; | 425 'juju-tests-utils', 'juju-models', 'juju-charm-models']; |
309 var Y, fakebackend, utils; | 426 var Y, fakebackend, utils; |
310 | 427 |
311 before(function(done) { | 428 before(function(done) { |
312 Y = YUI(GlobalConfig).use(requires, function(Y) { | 429 Y = YUI(GlobalConfig).use(requires, function(Y) { |
313 utils = Y.namespace('juju-tests.utils'); | 430 utils = Y.namespace('juju-tests.utils'); |
314 done(); | 431 done(); |
315 }); | 432 }); |
(...skipping 967 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1283 ['cs:wordpress', 'cs:mysql'], | 1400 ['cs:wordpress', 'cs:mysql'], |
1284 ['wordpress:db', 'mysql:db'], | 1401 ['wordpress:db', 'mysql:db'], |
1285 ['wordpress:bar', 'mysql:baz'], | 1402 ['wordpress:bar', 'mysql:baz'], |
1286 {error: 'Relationship does not exist'}, | 1403 {error: 'Relationship does not exist'}, |
1287 done); | 1404 done); |
1288 }); | 1405 }); |
1289 | 1406 |
1290 }); | 1407 }); |
1291 | 1408 |
1292 })(); | 1409 })(); |
OLD | NEW |