~gary/juju-gui/hideInspectorOnRelationClick

« back to all changes in this revision

Viewing changes to test/test_charm_view.js

  • Committer: Gary Poster
  • Date: 2012-09-21 03:53:56 UTC
  • mto: This revision was merged to the branch mainline in revision 107.
  • Revision ID: gary.poster@canonical.com-20120921035356-dv7ws5so3ceafw88
now with more linting and less lint!

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
'use strict';
2
2
 
3
 
(function () {
4
 
 
5
 
    describe('juju charm view', function() {
6
 
        var CharmView, juju, localCharmStore, testUtils, Y;
7
 
 
8
 
        var charmQuery = '/charms/precise/postgresql/json';
9
 
 
10
 
        var charmResults = {
11
 
            'maintainer': 'Mark Mims <mark.mims@canonical.com>',
12
 
            'series': 'precise',
13
 
            'owner': 'charmers',
14
 
            'provides': {
15
 
                'db-admin': {
16
 
                    'interface': 'pgsql'
17
 
                },
18
 
                'db': {
19
 
                    'interface': 'pgsql'
20
 
                }
21
 
            },
22
 
            'description': 'PostgreSQL is a fully featured RDBMS.',
23
 
            'name': 'postgresql',
24
 
            'summary': 'object-relational SQL database (supported version)',
25
 
            'bzr_branch': 'lp:~charmers/charms/precise/postgresql/trunk',
26
 
            'last_change': {
27
 
                'committer': 'David Owen <david.owen@canonical.com>',
28
 
                'message': 'Only reload for pg_hba updates',
29
 
                'revno': 24,
30
 
                'created': 1340206387.539
31
 
            },
32
 
            'proof': {}
33
 
        };
34
 
 
35
 
        before(function (done) {
36
 
            Y = YUI(GlobalConfig).use([
37
 
                'juju-views', 'juju-tests-utils', 'juju-env',
38
 
                'node-event-simulate'
39
 
                ], function (Y) {
40
 
                testUtils = Y.namespace('juju-tests.utils');
41
 
                juju = Y.namespace('juju');
42
 
                CharmView = juju.views.charm;
43
 
                // Use a local charm store.
44
 
                localCharmStore = new Y.DataSource.Local({
45
 
                    source: [{
46
 
                        responseText: Y.JSON.stringify(charmResults)
47
 
                    }]
48
 
                });
49
 
                done();
50
 
            });
51
 
        });
52
 
 
53
 
        // Ensure the charm view correctly requests a charm deploy.
54
 
        it('must be able to deploy a charm', function(done) {
55
 
            var conn = new testUtils.SocketStub();
56
 
            var env = new juju.Environment({conn: conn});
57
 
            env.connect();
58
 
            conn.open();
59
 
            // Create an instance of CharmView passing a customized env.
60
 
            var charmView = new CharmView({
61
 
                charm_data_url: charmQuery,
62
 
                charm_store: localCharmStore,
63
 
                env: env
64
 
            });
65
 
            var redirected = false;
66
 
            charmView.on('showEnvironment', function() {
67
 
                redirected = true;
68
 
            });
69
 
            var deployInput = charmView.get('container').one('#charm-deploy');
70
 
            deployInput.after('click', function() {
71
 
                var msg = conn.last_message();
72
 
                // Ensure the websocket received the `deploy` message.
73
 
                msg.op.should.equal('deploy');
74
 
                var expected = charmResults.series + '/' + charmResults.name;
75
 
                msg.charm_url.should.contain(expected);
76
 
                // A click to the deploy button redirects to the root page.
77
 
                redirected.should.equal(true);
78
 
                done();
79
 
            });
80
 
            deployInput.simulate('click');
81
 
        });
82
 
 
83
 
    });
 
3
(function() {
 
4
 
 
5
  describe('juju charm view', function() {
 
6
    var CharmView, juju, localCharmStore, testUtils, Y;
 
7
 
 
8
    var charmQuery = '/charms/precise/postgresql/json';
 
9
 
 
10
    var charmResults = {
 
11
      'maintainer': 'Mark Mims <mark.mims@canonical.com>',
 
12
      'series': 'precise',
 
13
      'owner': 'charmers',
 
14
      'provides': {
 
15
        'db-admin': {
 
16
          'interface': 'pgsql'
 
17
        },
 
18
        'db': {
 
19
          'interface': 'pgsql'
 
20
        }
 
21
      },
 
22
      'description': 'PostgreSQL is a fully featured RDBMS.',
 
23
      'name': 'postgresql',
 
24
      'summary': 'object-relational SQL database (supported version)',
 
25
      'bzr_branch': 'lp:~charmers/charms/precise/postgresql/trunk',
 
26
      'last_change': {
 
27
        'committer': 'David Owen <david.owen@canonical.com>',
 
28
        'message': 'Only reload for pg_hba updates',
 
29
        'revno': 24,
 
30
        'created': 1340206387.539
 
31
      },
 
32
      'proof': {}
 
33
    };
 
34
 
 
35
    before(function(done) {
 
36
      Y = YUI(GlobalConfig).use([
 
37
        'juju-views', 'juju-tests-utils', 'juju-env',
 
38
        'node-event-simulate'
 
39
      ], function(Y) {
 
40
        testUtils = Y.namespace('juju-tests.utils');
 
41
        juju = Y.namespace('juju');
 
42
        CharmView = juju.views.charm;
 
43
        // Use a local charm store.
 
44
        localCharmStore = new Y.DataSource.Local({
 
45
          source: [{
 
46
            responseText: Y.JSON.stringify(charmResults)
 
47
          }]
 
48
        });
 
49
        done();
 
50
      });
 
51
    });
 
52
 
 
53
    // Ensure the charm view correctly requests a charm deploy.
 
54
    it('must be able to deploy a charm', function(done) {
 
55
      var conn = new testUtils.SocketStub();
 
56
      var env = new juju.Environment({conn: conn});
 
57
      env.connect();
 
58
      conn.open();
 
59
      // Create an instance of CharmView passing a customized env.
 
60
      var charmView = new CharmView({
 
61
        charm_data_url: charmQuery,
 
62
        charm_store: localCharmStore,
 
63
        env: env
 
64
      });
 
65
      var redirected = false;
 
66
      charmView.on('showEnvironment', function() {
 
67
        redirected = true;
 
68
      });
 
69
      var deployInput = charmView.get('container').one('#charm-deploy');
 
70
      deployInput.after('click', function() {
 
71
        var msg = conn.last_message();
 
72
        // Ensure the websocket received the `deploy` message.
 
73
        msg.op.should.equal('deploy');
 
74
        var expected = charmResults.series + '/' + charmResults.name;
 
75
        msg.charm_url.should.contain(expected);
 
76
        // A click to the deploy button redirects to the root page.
 
77
        redirected.should.equal(true);
 
78
        done();
 
79
      });
 
80
      deployInput.simulate('click');
 
81
    });
 
82
 
 
83
  });
84
84
 
85
85
})();