Skip to content

Commit 75f8211

Browse files
committed
Auto merge of #2232 - Turbo87:api-action-tests, r=locks
models/crate: Add tests for `inviteOwner()` / `removeOwner()` these tests help in isolating the issue that is causing the CI failure in #2224 r? @locks
2 parents a72846f + c64c69d commit 75f8211

File tree

1 file changed

+67
-0
lines changed

1 file changed

+67
-0
lines changed

tests/models/crate-test.js

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
import { module, test } from 'qunit';
2+
import { setupTest } from 'ember-qunit';
3+
4+
import AdapterError from '@ember-data/adapter/error';
5+
6+
import setupMirage from 'ember-cli-mirage/test-support/setup-mirage';
7+
8+
module('Model | Crate', function(hooks) {
9+
setupTest(hooks);
10+
setupMirage(hooks);
11+
12+
hooks.beforeEach(function() {
13+
this.store = this.owner.lookup('service:store');
14+
});
15+
16+
module('inviteOwner()', function() {
17+
test('happy path', async function(assert) {
18+
let user = this.server.create('user');
19+
20+
let crate = this.server.create('crate');
21+
this.server.create('version', { crate });
22+
23+
let crateRecord = await this.store.findRecord('crate', crate.id);
24+
25+
let result = await crateRecord.inviteOwner(user.login);
26+
assert.deepEqual(result, { ok: true });
27+
});
28+
29+
test('error handling', async function(assert) {
30+
let crate = this.server.create('crate');
31+
this.server.create('version', { crate });
32+
33+
let crateRecord = await this.store.findRecord('crate', crate.id);
34+
35+
await assert.rejects(crateRecord.inviteOwner('unknown'), function(error) {
36+
assert.deepEqual(error.errors, [{ detail: 'Not Found' }]);
37+
return error instanceof AdapterError;
38+
});
39+
});
40+
});
41+
42+
module('removeOwner()', function() {
43+
test('happy path', async function(assert) {
44+
let user = this.server.create('user');
45+
46+
let crate = this.server.create('crate');
47+
this.server.create('version', { crate });
48+
49+
let crateRecord = await this.store.findRecord('crate', crate.id);
50+
51+
let result = await crateRecord.removeOwner(user.login);
52+
assert.deepEqual(result, {});
53+
});
54+
55+
test('error handling', async function(assert) {
56+
let crate = this.server.create('crate');
57+
this.server.create('version', { crate });
58+
59+
let crateRecord = await this.store.findRecord('crate', crate.id);
60+
61+
await assert.rejects(crateRecord.removeOwner('unknown'), function(error) {
62+
assert.deepEqual(error.errors, [{ detail: 'Not Found' }]);
63+
return error instanceof AdapterError;
64+
});
65+
});
66+
});
67+
});

0 commit comments

Comments
 (0)