Skip to content

Commit 6e56c8e

Browse files
committed
mirage/crates: Replace _owner_teams|users with crate-ownership model
1 parent 76aa8f7 commit 6e56c8e

File tree

3 files changed

+19
-25
lines changed

3 files changed

+19
-25
lines changed

mirage/route-handlers/crates.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@ export function register(server) {
1818

1919
if (request.queryParams.user_id) {
2020
let userId = parseInt(request.queryParams.user_id, 10);
21-
crates = crates.filter(crate => (crate._owner_users || []).indexOf(userId) !== -1);
21+
crates = crates.filter(crate => schema.crateOwnerships.findBy({ crateId: crate.id, userId }));
2222
}
2323

2424
if (request.queryParams.team_id) {
2525
let teamId = parseInt(request.queryParams.team_id, 10);
26-
crates = crates.filter(crate => (crate._owner_teams || []).indexOf(teamId) !== -1);
26+
crates = crates.filter(crate => schema.crateOwnerships.findBy({ crateId: crate.id, teamId }));
2727
}
2828

2929
if (request.queryParams.sort === 'alpha') {

tests/acceptance/dashboard-test.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@ module('Acceptance | Dashboard', function (hooks) {
3333
}
3434

3535
{
36-
let crate = this.server.create('crate', { name: 'nanomsg', _owner_users: [42] });
36+
let crate = this.server.create('crate', { name: 'nanomsg' });
37+
this.server.create('crate-ownership', { crate, user });
3738
this.server.create('version', { crate, num: '0.1.0' });
3839
}
3940

tests/mirage/crates-test.js

Lines changed: 15 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -134,31 +134,19 @@ module('Mirage | Crates', function (hooks) {
134134
});
135135

136136
test('supports a `user_id` parameter', async function (assert) {
137-
this.server.create('crate', { name: 'foo' });
138-
this.server.create('version', { crateId: 'foo' });
139-
this.server.create('crate', { name: 'bar', _owner_users: [42] });
140-
this.server.create('version', { crateId: 'bar' });
141-
this.server.create('crate', { name: 'baz', _owner_users: [13] });
142-
this.server.create('version', { crateId: 'baz' });
143-
144-
let response = await fetch('/api/v1/crates?user_id=42');
145-
assert.equal(response.status, 200);
146-
147-
let responsePayload = await response.json();
148-
assert.equal(responsePayload.crates.length, 1);
149-
assert.equal(responsePayload.crates[0].id, 'bar');
150-
assert.equal(responsePayload.meta.total, 1);
151-
});
137+
let user1 = this.server.create('user');
138+
let user2 = this.server.create('user');
152139

153-
test('supports a `team_id` parameter', async function (assert) {
154140
this.server.create('crate', { name: 'foo' });
155141
this.server.create('version', { crateId: 'foo' });
156-
this.server.create('crate', { name: 'bar', _owner_teams: [42] });
142+
let bar = this.server.create('crate', { name: 'bar' });
143+
this.server.create('crate-ownership', { crate: bar, user: user1 });
157144
this.server.create('version', { crateId: 'bar' });
158-
this.server.create('crate', { name: 'baz', _owner_teams: [13] });
145+
let baz = this.server.create('crate', { name: 'baz' });
146+
this.server.create('crate-ownership', { crate: baz, user: user2 });
159147
this.server.create('version', { crateId: 'baz' });
160148

161-
let response = await fetch('/api/v1/crates?team_id=42');
149+
let response = await fetch(`/api/v1/crates?user_id=${user1.id}`);
162150
assert.equal(response.status, 200);
163151

164152
let responsePayload = await response.json();
@@ -168,14 +156,19 @@ module('Mirage | Crates', function (hooks) {
168156
});
169157

170158
test('supports a `team_id` parameter', async function (assert) {
159+
let team1 = this.server.create('team');
160+
let team2 = this.server.create('team');
161+
171162
this.server.create('crate', { name: 'foo' });
172163
this.server.create('version', { crateId: 'foo' });
173-
this.server.create('crate', { name: 'bar', _owner_teams: [42] });
164+
let bar = this.server.create('crate', { name: 'bar' });
165+
this.server.create('crate-ownership', { crate: bar, team: team1 });
174166
this.server.create('version', { crateId: 'bar' });
175-
this.server.create('crate', { name: 'baz', _owner_teams: [13] });
167+
let baz = this.server.create('crate', { name: 'baz' });
168+
this.server.create('crate-ownership', { crate: baz, team: team2 });
176169
this.server.create('version', { crateId: 'baz' });
177170

178-
let response = await fetch('/api/v1/crates?team_id=42');
171+
let response = await fetch(`/api/v1/crates?team_id=${team1.id}`);
179172
assert.equal(response.status, 200);
180173

181174
let responsePayload = await response.json();

0 commit comments

Comments
 (0)