Skip to content

Commit 4db1e60

Browse files
committed
tests/api-token: Add basic test for /me route
1 parent 5a45267 commit 4db1e60

File tree

1 file changed

+65
-0
lines changed

1 file changed

+65
-0
lines changed

tests/acceptance/api-token-test.js

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
import { module, test } from 'qunit';
2+
import { setupApplicationTest } from 'ember-qunit';
3+
import { currentURL, findAll } from '@ember/test-helpers';
4+
import window, { setupWindowMock } from 'ember-window-mock';
5+
6+
import setupMirage from '../helpers/setup-mirage';
7+
import { visit } from '../helpers/visit-ignoring-abort';
8+
9+
module('Acceptance | api-tokens', function(hooks) {
10+
setupApplicationTest(hooks);
11+
setupWindowMock(hooks);
12+
setupMirage(hooks);
13+
14+
function prepare(context) {
15+
window.localStorage.setItem('isLoggedIn', '1');
16+
17+
context.server.get('/api/v1/me', {
18+
user: {
19+
id: 42,
20+
login: 'johnnydee',
21+
email_verified: true,
22+
email_verification_sent: true,
23+
name: 'John Doe',
24+
25+
avatar: 'https://avatars2.githubusercontent.com/u/1234567?v=4',
26+
url: 'https://github.com/johnnydee',
27+
},
28+
owned_crates: [],
29+
});
30+
31+
context.server.get('/api/v1/me/tokens', {
32+
api_tokens: [
33+
{ id: 2, name: 'BAR', created_at: '2017-11-19T17:59:22Z', last_used_at: null },
34+
{ id: 1, name: 'foo', created_at: '2017-08-01T12:34:56Z', last_used_at: '2017-11-02T01:45:14Z' },
35+
],
36+
});
37+
}
38+
39+
test('/me is showing the list of active API tokens', async function(assert) {
40+
prepare(this);
41+
42+
await visit('/me');
43+
assert.equal(currentURL(), '/me');
44+
assert.dom('[data-test-api-token]').exists({ count: 2 });
45+
46+
let [row1, row2] = findAll('[data-test-api-token]');
47+
assert.dom('[data-test-name]', row1).hasText('BAR');
48+
assert.dom('[data-test-created-at]', row1).hasText('Created 17 hours ago');
49+
assert.dom('[data-test-last-used-at]', row1).hasText('Never used');
50+
assert.dom('[data-test-save-token-button]', row1).doesNotExist();
51+
assert.dom('[data-test-revoke-token-button]', row1).exists();
52+
assert.dom('[data-test-saving-spinner]', row1).doesNotExist();
53+
assert.dom('[data-test-error]', row1).doesNotExist();
54+
assert.dom('[data-test-token]', row1).doesNotExist();
55+
56+
assert.dom('[data-test-name]', row2).hasText('foo');
57+
assert.dom('[data-test-created-at]', row2).hasText('Created 4 months ago');
58+
assert.dom('[data-test-last-used-at]', row2).hasText('Last used 18 days ago');
59+
assert.dom('[data-test-save-token-button]', row2).doesNotExist();
60+
assert.dom('[data-test-revoke-token-button]', row2).exists();
61+
assert.dom('[data-test-saving-spinner]', row2).doesNotExist();
62+
assert.dom('[data-test-error]', row2).doesNotExist();
63+
assert.dom('[data-test-token]', row2).doesNotExist();
64+
});
65+
});

0 commit comments

Comments
 (0)