Skip to content

Commit e8be514

Browse files
author
Robert Jackson
committed
Properly replace this.subject() with moduleForModel.
1 parent 3e9117b commit e8be514

1 file changed

Lines changed: 17 additions & 1 deletion

File tree

ember-qunit-codemod.js

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ module.exports = function(file, api, options) {
246246

247247
thisDotSubjectUsage.forEach(p => {
248248
let options = p.node.arguments[0];
249-
let subjectType = subject.value.split(':')[0];
249+
let [subjectType, subjectName] = subject.value.split(':');
250250
let isSingletonSubject = !['model', 'component'].includes(subjectType);
251251

252252
// if we don't have `options` and the type is a singleton type
@@ -261,6 +261,22 @@ module.exports = function(file, api, options) {
261261
[subject]
262262
)
263263
);
264+
} else if (subjectType === 'model') {
265+
p.replace(
266+
j.callExpression(
267+
j.memberExpression(
268+
j.callExpression(
269+
j.memberExpression(
270+
j.memberExpression(j.thisExpression(), j.identifier('owner')),
271+
j.identifier('lookup')
272+
),
273+
[j.literal('service:store')]
274+
),
275+
j.identifier('createRecord')
276+
),
277+
[j.literal(subjectName), options].filter(Boolean)
278+
)
279+
);
264280
} else {
265281
p.replace(
266282
j.callExpression(

0 commit comments

Comments
 (0)