Skip to content

Commit 5d58e01

Browse files
Turbo87marcoow
authored andcommitted
setup-session-restoration: Convert to regular initializer (#1547)
1 parent 25503ae commit 5d58e01

File tree

6 files changed

+51
-50
lines changed

6 files changed

+51
-50
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import { getOwner } from '@ember/application';
2+
3+
export default function setupSessionRestoration(registry) {
4+
const ApplicationRoute = registry.resolveRegistration
5+
? registry.resolveRegistration('route:application')
6+
: registry.resolve('route:application');
7+
8+
ApplicationRoute.reopen({
9+
init() {
10+
this._super(...arguments);
11+
12+
const originalBeforeModel = this.beforeModel;
13+
this.beforeModel = function() {
14+
const session = getOwner(this).lookup('session:main');
15+
16+
return session.restore().then(
17+
() => originalBeforeModel.apply(this, arguments),
18+
() => originalBeforeModel.apply(this, arguments)
19+
);
20+
};
21+
},
22+
});
23+
}

addon/instance-initializers/setup-session-restoration.js

Lines changed: 0 additions & 18 deletions
This file was deleted.

addon/utils/lookup.js

Lines changed: 0 additions & 7 deletions
This file was deleted.

app/initializers/ember-simple-auth.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import ENV from '../config/environment';
22
import Configuration from 'ember-simple-auth/configuration';
33
import setupSession from 'ember-simple-auth/initializers/setup-session';
44
import setupSessionService from 'ember-simple-auth/initializers/setup-session-service';
5+
import setupSessionRestoration from 'ember-simple-auth/initializers/setup-session-restoration';
56

67
export default {
78
name: 'ember-simple-auth',
@@ -13,5 +14,6 @@ export default {
1314

1415
setupSession(registry);
1516
setupSessionService(registry);
17+
setupSessionRestoration(registry);
1618
}
1719
};

app/instance-initializers/ember-simple-auth.js

Lines changed: 0 additions & 9 deletions
This file was deleted.

tests/unit/instance-initializers/setup-session-restoration-test.js renamed to tests/unit/initializers/setup-session-restoration-test.js

Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,59 @@
11
import Route from '@ember/routing/route';
2+
import { getOwner, setOwner } from '@ember/application';
23
import RSVP from 'rsvp';
34
import { describe, beforeEach, it } from 'mocha';
45
import { expect } from 'chai';
56
import sinon from 'sinon';
6-
import setupSessionRestoration from 'ember-simple-auth/instance-initializers/setup-session-restoration';
7+
import setupSessionRestoration from 'ember-simple-auth/initializers/setup-session-restoration';
78

89
describe('setupSessionRestoration', () => {
9-
let container;
10-
let containerStub;
11-
let route;
10+
let registry;
11+
let resolveStub;
12+
let ApplicationRoute;
1213

1314
beforeEach(function() {
14-
container = {
15-
lookup() {}
15+
registry = {
16+
resolve() {}
1617
};
1718

18-
route = Route.extend().create();
19+
ApplicationRoute = Route.extend();
1920

20-
containerStub = sinon.stub(container, 'lookup');
21+
resolveStub = sinon.stub(registry, 'resolve');
2122
});
2223

2324
it('adds a beforeModel method', function() {
24-
containerStub.withArgs('route:application').returns(route);
25-
setupSessionRestoration({ container });
25+
resolveStub.withArgs('route:application').returns(ApplicationRoute);
26+
setupSessionRestoration(registry);
2627

28+
const route = ApplicationRoute.create();
2729
expect(route).to.respondTo('beforeModel');
2830
});
2931

3032
describe('the beforeModel method', function() {
31-
let session;
33+
let session, route;
3234

3335
beforeEach(function() {
3436
session = {
3537
restore() {}
3638
};
3739

38-
route = Route.extend({
40+
ApplicationRoute = Route.extend({
3941
beforeModel() {
4042
return RSVP.resolve('test');
4143
}
42-
}).create();
44+
});
45+
46+
resolveStub.withArgs('route:application').returns(ApplicationRoute);
47+
setupSessionRestoration(registry);
48+
49+
route = ApplicationRoute.create({ container: {} });
50+
51+
if (setOwner) {
52+
setOwner(route, { lookup() {} });
53+
}
4354

44-
containerStub.withArgs('route:application').returns(route);
45-
containerStub.withArgs('session:main').returns(session);
46-
setupSessionRestoration({ container });
55+
const owner = getOwner(route);
56+
sinon.stub(owner, 'lookup').withArgs('session:main').returns(session);
4757
});
4858

4959
describe('when session restoration resolves', function() {

0 commit comments

Comments
 (0)