Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(877)

Side by Side Diff: test/test_charm_store.js

Issue 6733067: change charm store data structures
Patch Set: change charm store data structures Created 12 years, 5 months ago
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « test/test_charm_search.js ('k') | test/test_model.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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 })();
OLDNEW
« no previous file with comments | « test/test_charm_search.js ('k') | test/test_model.js » ('j') | no next file with comments »

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b