|
3 | 3 | import Route from '@ember/routing/route';
|
4 | 4 | import { visit } from '@ember/test-helpers';
|
5 | 5 | import { setupApplicationTest } from 'ember-qunit';
|
6 |
| -import { module, test } from 'qunit'; |
| 6 | +import { module } from 'qunit'; |
| 7 | +import { testIfPolyfilled } from '../helpers/should-test-polyfill'; |
7 | 8 |
|
8 | 9 | module('Acceptance | RouterService | refresh', function (hooks) {
|
9 | 10 | setupApplicationTest(hooks);
|
10 | 11 |
|
11 |
| - test('it can be used to re-run the model hooks of active routes', async function (assert) { |
12 |
| - const routerService = this.owner.lookup('service:router'); |
13 |
| - |
14 |
| - let parentCounter = 0; |
15 |
| - this.owner.register( |
16 |
| - 'route:parent', |
17 |
| - Route.extend({ |
18 |
| - model() { |
19 |
| - ++parentCounter; |
20 |
| - }, |
21 |
| - }) |
22 |
| - ); |
23 |
| - |
24 |
| - let childCounter = 0; |
25 |
| - this.owner.register( |
26 |
| - 'route:parent.child', |
27 |
| - Route.extend({ |
28 |
| - model() { |
29 |
| - ++childCounter; |
30 |
| - }, |
31 |
| - }) |
32 |
| - ); |
33 |
| - |
34 |
| - let sisterCounter = 0; |
35 |
| - this.owner.register( |
36 |
| - 'route:parent.sister', |
37 |
| - Route.extend({ |
38 |
| - model() { |
39 |
| - ++sisterCounter; |
40 |
| - }, |
41 |
| - }) |
42 |
| - ); |
43 |
| - |
44 |
| - await visit('/'); |
45 |
| - assert.strictEqual(parentCounter, 1); |
46 |
| - assert.strictEqual(childCounter, 0); |
47 |
| - assert.strictEqual(sisterCounter, 0); |
48 |
| - |
49 |
| - await routerService.refresh(); |
50 |
| - assert.strictEqual(parentCounter, 2); |
51 |
| - assert.strictEqual(childCounter, 0); |
52 |
| - assert.strictEqual(sisterCounter, 0); |
53 |
| - |
54 |
| - await routerService.refresh('application'); |
55 |
| - assert.strictEqual(parentCounter, 3); |
56 |
| - assert.strictEqual(childCounter, 0); |
57 |
| - assert.strictEqual(sisterCounter, 0); |
58 |
| - |
59 |
| - await routerService.transitionTo('parent.child'); |
60 |
| - assert.strictEqual(parentCounter, 3); |
61 |
| - assert.strictEqual(childCounter, 1); |
62 |
| - assert.strictEqual(sisterCounter, 0); |
63 |
| - |
64 |
| - await routerService.refresh('parent.child'); |
65 |
| - assert.strictEqual(parentCounter, 3); |
66 |
| - assert.strictEqual(childCounter, 2); |
67 |
| - assert.strictEqual(sisterCounter, 0); |
68 |
| - |
69 |
| - await routerService.refresh('parent'); |
70 |
| - assert.strictEqual(parentCounter, 4); |
71 |
| - assert.strictEqual(childCounter, 3); |
72 |
| - assert.strictEqual(sisterCounter, 0); |
73 |
| - |
74 |
| - await routerService.transitionTo('parent.sister'); |
75 |
| - assert.strictEqual(parentCounter, 4); |
76 |
| - assert.strictEqual(childCounter, 3); |
77 |
| - assert.strictEqual(sisterCounter, 1); |
78 |
| - |
79 |
| - await routerService.refresh(); |
80 |
| - assert.strictEqual(parentCounter, 5); |
81 |
| - assert.strictEqual(childCounter, 3); |
82 |
| - assert.strictEqual(sisterCounter, 2); |
83 |
| - }); |
84 |
| - |
85 |
| - test('it verifies that the provided route exists', async function (assert) { |
86 |
| - const routerService = this.owner.lookup('service:router'); |
87 |
| - |
88 |
| - assert.throws(() => { |
89 |
| - routerService.refresh('this-route-does-not-exist'); |
90 |
| - }); |
91 |
| - }); |
92 |
| - |
93 |
| - test('it verifies that the provided route is active', async function (assert) { |
94 |
| - const routerService = this.owner.lookup('service:router'); |
95 |
| - |
96 |
| - assert.throws(() => { |
97 |
| - routerService.refresh('this-route-does-not-exist'); |
98 |
| - }); |
99 |
| - }); |
| 12 | + testIfPolyfilled( |
| 13 | + 'it can be used to re-run the model hooks of active routes', |
| 14 | + async function (assert) { |
| 15 | + const routerService = this.owner.lookup('service:router'); |
| 16 | + |
| 17 | + let parentCounter = 0; |
| 18 | + this.owner.register( |
| 19 | + 'route:parent', |
| 20 | + Route.extend({ |
| 21 | + model() { |
| 22 | + ++parentCounter; |
| 23 | + }, |
| 24 | + }) |
| 25 | + ); |
| 26 | + |
| 27 | + let childCounter = 0; |
| 28 | + this.owner.register( |
| 29 | + 'route:parent.child', |
| 30 | + Route.extend({ |
| 31 | + model() { |
| 32 | + ++childCounter; |
| 33 | + }, |
| 34 | + }) |
| 35 | + ); |
| 36 | + |
| 37 | + let sisterCounter = 0; |
| 38 | + this.owner.register( |
| 39 | + 'route:parent.sister', |
| 40 | + Route.extend({ |
| 41 | + model() { |
| 42 | + ++sisterCounter; |
| 43 | + }, |
| 44 | + }) |
| 45 | + ); |
| 46 | + |
| 47 | + await visit('/'); |
| 48 | + assert.strictEqual(parentCounter, 1); |
| 49 | + assert.strictEqual(childCounter, 0); |
| 50 | + assert.strictEqual(sisterCounter, 0); |
| 51 | + |
| 52 | + await routerService.refresh(); |
| 53 | + assert.strictEqual(parentCounter, 2); |
| 54 | + assert.strictEqual(childCounter, 0); |
| 55 | + assert.strictEqual(sisterCounter, 0); |
| 56 | + |
| 57 | + await routerService.refresh('application'); |
| 58 | + assert.strictEqual(parentCounter, 3); |
| 59 | + assert.strictEqual(childCounter, 0); |
| 60 | + assert.strictEqual(sisterCounter, 0); |
| 61 | + |
| 62 | + await routerService.transitionTo('parent.child'); |
| 63 | + assert.strictEqual(parentCounter, 3); |
| 64 | + assert.strictEqual(childCounter, 1); |
| 65 | + assert.strictEqual(sisterCounter, 0); |
| 66 | + |
| 67 | + await routerService.refresh('parent.child'); |
| 68 | + assert.strictEqual(parentCounter, 3); |
| 69 | + assert.strictEqual(childCounter, 2); |
| 70 | + assert.strictEqual(sisterCounter, 0); |
| 71 | + |
| 72 | + await routerService.refresh('parent'); |
| 73 | + assert.strictEqual(parentCounter, 4); |
| 74 | + assert.strictEqual(childCounter, 3); |
| 75 | + assert.strictEqual(sisterCounter, 0); |
| 76 | + |
| 77 | + await routerService.transitionTo('parent.sister'); |
| 78 | + assert.strictEqual(parentCounter, 4); |
| 79 | + assert.strictEqual(childCounter, 3); |
| 80 | + assert.strictEqual(sisterCounter, 1); |
| 81 | + |
| 82 | + await routerService.refresh(); |
| 83 | + assert.strictEqual(parentCounter, 5); |
| 84 | + assert.strictEqual(childCounter, 3); |
| 85 | + assert.strictEqual(sisterCounter, 2); |
| 86 | + } |
| 87 | + ); |
| 88 | + |
| 89 | + testIfPolyfilled( |
| 90 | + 'it verifies that the provided route exists', |
| 91 | + async function (assert) { |
| 92 | + const routerService = this.owner.lookup('service:router'); |
| 93 | + |
| 94 | + assert.throws(() => { |
| 95 | + routerService.refresh('this-route-does-not-exist'); |
| 96 | + }); |
| 97 | + } |
| 98 | + ); |
| 99 | + |
| 100 | + testIfPolyfilled( |
| 101 | + 'it verifies that the provided route is active', |
| 102 | + async function (assert) { |
| 103 | + const routerService = this.owner.lookup('service:router'); |
| 104 | + |
| 105 | + assert.throws(() => { |
| 106 | + routerService.refresh('this-route-does-not-exist'); |
| 107 | + }); |
| 108 | + } |
| 109 | + ); |
100 | 110 | });
|
0 commit comments