Skip to content

Commit c24df73

Browse files
authored
[ENG-4008] Unsilence deprecation 'ember-metal.get-with-default' (#1660)
- Ticket: [ENG-4008] ## Purpose Fix the deprecations for 'ember-metal.get-with-default' so we can turn off the silencing of that deprecation. ## Summary of Changes 1. Upgrade ember-simple-auth and ember-cp-validations, and pin the resolution of ember-validators because these were the source of the deprecation warnings 2. Fix problems related to upgrading ember-simple-auth, which mostly involved upgrading more addons, overriding a method on ember-simple-auth to keep it from auto-redirecting to index whenever we authed, and fixing some tests. ## Side Effects My biggest concern is with the upgrade of all of our form validation related addons. Tests are passing, though, so that's good. Oh, and we're on node v14 now.
1 parent 54f02fe commit c24df73

File tree

9 files changed

+463
-425
lines changed

9 files changed

+463
-425
lines changed

app/authenticators/osf-cookie.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ export default class OsfCookie extends Base {
8686
return { id };
8787
}
8888

89-
restore() {
89+
async restore() {
9090
const {
9191
lastVerifiedUserId,
9292
session: {
@@ -107,7 +107,7 @@ export default class OsfCookie extends Base {
107107

108108
// Check for a valid auth cookie.
109109
// If it fails, the session will be invalidated.
110-
return this.authenticate();
110+
return await this.authenticate();
111111
}
112112

113113
async _checkApiVersion() {

app/decorators/check-auth.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import Route from '@ember/routing/route';
22
import { inject as service, Registry as ServiceRegistry } from '@ember/service';
33
import config from 'ember-get-config';
4-
import SessionService from 'ember-simple-auth/services/session';
54

65
import { NotLoggedIn } from 'ember-osf-web/errors';
76
import CurrentUser from 'ember-osf-web/services/current-user';
7+
import OsfSession from 'ember-osf-web/services/session';
88
import transitionTargetURL from 'ember-osf-web/utils/transition-target-url';
99

1010
const {
@@ -30,7 +30,7 @@ export default function checkAuth<T extends ConcreteSubclass<Route>>(
3030
) {
3131
class AuthenticatedRoute extends RouteSubclass {
3232
@service router!: ServiceRegistry['router'];
33-
@service session!: SessionService;
33+
@service session!: OsfSession;
3434
@service currentUser!: CurrentUser;
3535

3636
async beforeModel(transition: any) {

app/services/-private/session.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
2+
import SessionService from 'ember-simple-auth/services/session';
3+
4+
export default class OsfSession extends SessionService {
5+
handleAuthentication() {
6+
return;
7+
}
8+
}

app/services/session.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export { default } from 'ember-osf-web/services/-private/session';

config/deprecation-workflow.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ self.deprecationWorkflow = self.deprecationWorkflow || {};
22
self.deprecationWorkflow.config = {
33
workflow: [
44
{ handler: 'silence', matchId: 'ember-inflector.globals' },
5-
{ handler: 'silence', matchId: 'ember-metal.get-with-default' },
65
{ handler: 'silence', matchId: 'computed-property.volatile' },
76
{ handler: 'silence', matchId: 'implicit-injections' },
87
{ handler: 'silence', matchId: 'manager-capabilities.modifiers-3-13' },
@@ -18,5 +17,9 @@ self.deprecationWorkflow.config = {
1817
{ handler: 'silence', matchId: 'ember-engines.deprecation-camelized-engine-names' },
1918
{ handler: 'silence', matchId: 'ember-data:legacy-test-helper-support' },
2019
{ handler: 'silence', matchId: 'has-block-and-has-block-params' },
20+
{ handler: 'silence', matchId: 'ember-simple-auth.initializer.setup-session-restoration' },
21+
{ handler: 'silence', matchId: 'ember-simple-auth.events.session-service' },
22+
{ handler: 'silence', matchId: 'ember-cli-mirage.miragejs.import' },
23+
{ handler: 'silence', matchId: 'ember-cli-mirage-config-routes-only-export' },
2124
],
2225
};

package.json

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -131,8 +131,8 @@
131131
"ember-cli-htmlbars": "^5.7.1",
132132
"ember-cli-inject-live-reload": "^2.0.2",
133133
"ember-cli-inline-content": "0.4.1",
134-
"ember-cli-meta-tags": "^6.1.2",
135-
"ember-cli-mirage": "^2.0.1",
134+
"ember-cli-meta-tags": "^7.0.0",
135+
"ember-cli-mirage": "^2.4.0",
136136
"ember-cli-moment-shim": "^3.5.0",
137137
"ember-cli-password-strength": "^2.0.0",
138138
"ember-cli-release": "^1.0.0-beta.2",
@@ -155,15 +155,15 @@
155155
"ember-concurrency-ts": "^0.2.2",
156156
"ember-content-placeholders": "https://github.com/cos-forks/ember-content-placeholders#master#2018-07-19",
157157
"ember-cookies": "^0.4.0",
158-
"ember-cp-validations": "https://github.com/GavinJoyce/ember-cp-validations#gj/ember-3.13",
158+
"ember-cp-validations": "4.0.0-beta.13",
159159
"ember-css-modules": "^1.0.3",
160160
"ember-css-modules-reporter": "^1.2.0",
161161
"ember-css-modules-sass": "^1.0.1",
162162
"ember-css-modules-stylelint": "^1.2.0",
163163
"ember-data": "~3.26.0",
164164
"ember-decorators": "^6.1.1",
165165
"ember-diff-attrs": "^0.2.1",
166-
"ember-element-helper": "^0.5.5",
166+
"ember-element-helper": "^0.6.1",
167167
"ember-engines": "^0.8.13",
168168
"ember-event-helpers": "^0.1.0",
169169
"ember-exam": "^6.0.1",
@@ -192,7 +192,7 @@
192192
"ember-radio-button": "^2.0.0",
193193
"ember-resolver": "^8.0.2",
194194
"ember-responsive": "^3.0.0",
195-
"ember-simple-auth": "^2.1.1",
195+
"ember-simple-auth": "^4.2.2",
196196
"ember-sinon": "^5.0.0",
197197
"ember-sinon-qunit": "^5.0.0",
198198
"ember-sortable": "2.2",
@@ -228,7 +228,7 @@
228228
"loaders.css": "^0.1.2",
229229
"mime-types": "^2.1.22",
230230
"mocha": "^6.1.4",
231-
"node-sass": "^4.13.1",
231+
"node-sass": "^4.14.0",
232232
"npm-run-all": "^4.1.5",
233233
"prettier": "^2.2.1",
234234
"qunit": "^2.14.1",
@@ -245,7 +245,9 @@
245245
},
246246
"resolutions": {
247247
"ember-cli-clipboard": "0.9.0",
248-
"@embroider/macros": "^1.0.0"
248+
"@embroider/macros": "^1.0.0",
249+
"ember-element-helper": "^0.6.1",
250+
"ember-validators": "^4.1.1"
249251
},
250252
"engines": {
251253
"node": "10.* || >= 12"
@@ -265,7 +267,7 @@
265267
]
266268
},
267269
"volta": {
268-
"node": "10.18.0",
270+
"node": "14.15.0",
269271
"yarn": "1.21.1"
270272
},
271273
"dependencies": {}

tests/integration/components/osf-navbar/component-test.ts

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,24 +16,30 @@ const routerStub = Service.extend({
1616
},
1717
});
1818

19+
const sessionStub = Service.extend({
20+
isAuthenticated: false,
21+
on: () => { /* stub */ },
22+
});
23+
1924
module('Integration | Component | osf-navbar', hooks => {
2025
setupRenderingTest(hooks);
2126

2227
hooks.beforeEach(function(this: TestContext) {
2328
// Make sure currentURL is always a string
2429
this.owner.unregister('service:router');
2530
this.owner.register('service:router', routerStub);
31+
this.owner.register('service:session', sessionStub);
2632
});
2733

2834
test('it renders', async assert => {
29-
await render(hbs`{{osf-navbar}}`);
35+
await render(hbs`<OsfNavbar />`);
3036
assert.dom('.service-name').includesText('OSF');
3137
assert.dom('.current-service').hasText('HOME');
3238
});
3339

3440
test('service-dropdown: logged in', async function(assert) {
3541
this.owner.lookup('service:session').set('isAuthenticated', true);
36-
await render(hbs`{{osf-navbar}}`);
42+
await render(hbs`<OsfNavbar />`);
3743

3844
assert.dom('[data-test-service-dropdown]').exists();
3945

@@ -44,7 +50,7 @@ module('Integration | Component | osf-navbar', hooks => {
4450
test('auth-dropdown: logged in', async function(assert) {
4551
this.owner.lookup('service:session').set('isAuthenticated', true);
4652

47-
await render(hbs`{{osf-navbar}}`);
53+
await render(hbs`<OsfNavbar />`);
4854

4955
assert.dom('[data-test-auth-dropdown-toggle]').exists();
5056
await click('[data-test-auth-dropdown-toggle]');
@@ -54,7 +60,7 @@ module('Integration | Component | osf-navbar', hooks => {
5460
test('osf-navbar: logged out', async function(assert) {
5561
this.owner.lookup('service:session').set('isAuthenticated', false);
5662

57-
await render(hbs`{{osf-navbar}}`);
63+
await render(hbs`<OsfNavbar />`);
5864
assert.dom('[data-test-service-dropdown]').exists();
5965

6066
assert.dom('[data-test-auth-dropdown-toggle]').doesNotExist();

tests/integration/components/tos-consent-banner/component-test.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import Service from '@ember/service';
12
import { render } from '@ember/test-helpers';
23
import { hbs } from 'ember-cli-htmlbars';
34
import { setupMirage } from 'ember-cli-mirage/test-support';
@@ -13,6 +14,12 @@ interface ThisTestContext extends TestContext {
1314
currentUser: CurrentUser;
1415
}
1516

17+
const sessionStub = Service.extend({
18+
isAuthenticated: false,
19+
data: {},
20+
on: () => { /* stub */ },
21+
});
22+
1623
module('Integration | Component | tos-consent-banner', hooks => {
1724
setupRenderingTest(hooks);
1825
setupMirage(hooks);
@@ -21,14 +28,17 @@ module('Integration | Component | tos-consent-banner', hooks => {
2128
hooks.beforeEach(function(this: ThisTestContext) {
2229
this.store = this.owner.lookup('service:store');
2330
this.currentUser = this.owner.lookup('service:current-user');
31+
this.owner.unregister('service:session');
32+
this.owner.register('service:session', sessionStub);
33+
2434
});
2535

2636
hooks.afterEach(() => {
2737
sandbox.restore();
2838
});
2939

3040
test('hidden when no user is logged in', async function(assert) {
31-
await render(hbs`{{tos-consent-banner}}`);
41+
await render(hbs`<TosConsentBanner />`);
3242
assert.dom(this.element).hasText('');
3343
});
3444

0 commit comments

Comments
 (0)