OLD | NEW |
1 'use strict'; | 1 'use strict'; |
2 | 2 |
3 (function() { | 3 (function() { |
4 | 4 |
5 describe('juju charm store', function() { | 5 describe('juju charm store', function() { |
6 var Y, models, conn, env, app, container, charm_store, data, juju; | 6 var Y, models, conn, env, app, container, charm_store, data, juju; |
7 | 7 |
8 before(function(done) { | 8 before(function(done) { |
9 Y = YUI(GlobalConfig).use( | 9 Y = YUI(GlobalConfig).use( |
10 'datasource-local', 'json-stringify', 'juju-charm-store', | 10 'datasource-local', 'json-stringify', 'juju-charm-store', |
11 'datasource-io', 'io', 'array-extras', | 11 'datasource-io', 'io', 'array-extras', 'juju-charm-models', |
12 function(Y) { | 12 function(Y) { |
13 juju = Y.namespace('juju'); | 13 juju = Y.namespace('juju'); |
| 14 models = Y.namespace('juju.models'); |
14 done(); | 15 done(); |
15 }); | 16 }); |
16 }); | 17 }); |
17 | 18 |
18 beforeEach(function() { | 19 beforeEach(function() { |
19 data = []; | 20 data = []; |
20 charm_store = new juju.CharmStore( | 21 charm_store = new juju.CharmStore( |
21 {datasource: new Y.DataSource.Local({source: data})}); | 22 {datasource: new Y.DataSource.Local({source: data})}); |
22 }); | 23 }); |
23 | 24 |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
101 | 102 |
102 it('processes and orders search text requests properly', function(done) { | 103 it('processes and orders search text requests properly', function(done) { |
103 // This is data from | 104 // This is data from |
104 // http://jujucharms.com/search/json?search_text=cassandra . | 105 // http://jujucharms.com/search/json?search_text=cassandra . |
105 data.push(Y.io('data/search_results.json', {sync: true})); | 106 data.push(Y.io('data/search_results.json', {sync: true})); |
106 charm_store.find('cassandra', | 107 charm_store.find('cassandra', |
107 { success: function(results) { | 108 { success: function(results) { |
108 results.length.should.equal(2); | 109 results.length.should.equal(2); |
109 results[0].series.should.equal('precise'); | 110 results[0].series.should.equal('precise'); |
110 Y.Array.map(results[0].charms, function(charm) { | 111 Y.Array.map(results[0].charms, function(charm) { |
111 return charm.owner; | 112 return charm.get('owner'); |
112 }).should.eql([null, 'jjo', 'ev', 'ev', 'ev']); | 113 }).should.eql([undefined, 'jjo', 'ev', 'ev', 'ev']); |
113 Y.Array.map(results[0].charms, function(charm) { | 114 Y.Array.map(results[0].charms, function(charm) { |
114 return charm.baseId; | 115 return charm.get('id'); |
115 }).should.eql([ | 116 }).should.eql([ |
116 'cs:precise/cassandra', | 117 'cs:precise/cassandra-2', |
117 'cs:~jjo/precise/cassandra', | 118 'cs:~jjo/precise/cassandra-12', |
118 'cs:~ev/precise/errors', | 119 'cs:~ev/precise/errors-0', |
119 'cs:~ev/precise/daisy', | 120 'cs:~ev/precise/daisy-15', |
120 'cs:~ev/precise/daisy-retracer']); | 121 'cs:~ev/precise/daisy-retracer-8']); |
121 done(); | 122 done(); |
122 }, | 123 }, |
123 failure: assert.fail | 124 failure: assert.fail, |
| 125 list: new models.CharmList() |
124 }); | 126 }); |
125 }); | 127 }); |
126 | 128 |
127 it('honors defaultSeries in sorting search results', function(done) { | 129 it('honors defaultSeries in sorting search results', function(done) { |
128 // This is data from | 130 // This is data from |
129 // http://jujucharms.com/search/json?search_text=cassandra . | 131 // http://jujucharms.com/search/json?search_text=cassandra . |
130 data.push(Y.io('data/search_results.json', {sync: true})); | 132 data.push(Y.io('data/search_results.json', {sync: true})); |
131 charm_store.find('cassandra', | 133 charm_store.find('cassandra', |
132 { defaultSeries: 'oneiric', | 134 { defaultSeries: 'oneiric', |
133 success: function(results) { | 135 success: function(results) { |
134 results.length.should.equal(2); | 136 results.length.should.equal(2); |
135 results[0].series.should.equal('oneiric'); | 137 results[0].series.should.equal('oneiric'); |
136 done(); | 138 done(); |
137 }, | 139 }, |
138 failure: assert.fail | 140 failure: assert.fail, |
| 141 list: new models.CharmList() |
139 }); | 142 }); |
140 }); | 143 }); |
141 | 144 |
142 it('processes and orders search series requests properly', function(done) { | 145 it('processes and orders search series requests properly', function(done) { |
143 // This is data from | 146 // This is data from |
144 // http://jujucharms.com/search/json [CONTINUED ON NEXT LINE] | 147 // http://jujucharms.com/search/json [CONTINUED ON NEXT LINE] |
145 // ?search_text=series:quantal+owner:charmers . | 148 // ?search_text=series:quantal+owner:charmers . |
146 data.push(Y.io('data/series_search_results.json', {sync: true})); | 149 data.push(Y.io('data/series_search_results.json', {sync: true})); |
147 charm_store.find('cassandra', | 150 charm_store.find('cassandra', |
148 { success: function(results) { | 151 { success: function(results) { |
149 results.length.should.equal(1); | 152 results.length.should.equal(1); |
150 results[0].series.should.equal('quantal'); | 153 results[0].series.should.equal('quantal'); |
151 Y.Array.map(results[0].charms, function(charm) { | 154 Y.Array.map(results[0].charms, function(charm) { |
152 return charm.name; | 155 return charm.get('package_name'); |
153 }).should.eql([ | 156 }).should.eql([ |
154 'glance', | 157 'glance', |
155 'nova-cloud-controller', | 158 'nova-cloud-controller', |
156 'nova-compute', | 159 'nova-compute', |
157 'nova-volume', | 160 'nova-volume', |
158 'nyancat']); | 161 'nyancat']); |
159 done(); | 162 done(); |
160 }, | 163 }, |
161 failure: assert.fail | 164 failure: assert.fail, |
| 165 list: new models.CharmList() |
162 }); | 166 }); |
163 }); | 167 }); |
164 | |
165 }); | 168 }); |
166 })(); | 169 })(); |
OLD | NEW |