Skip to content

Instantly share code, notes, and snippets.

@patocallaghan
patocallaghan / mock-query.js
Created June 27, 2018 14:59
jscodeshift transform for migrating ember-data-factory-guy mockQuery syntax
/* eslint-env node */
/*
BEFORE
mockQuery('spam-message');
mockQuery('spam-message').returns({ json: spamMessageResult });
AFTER
mockQuery('spam-message').withSomeParams({ per_page: 20 });
mockQuery('spam-message').withSomeParams({ per_page: 20 }).returns({ json: spamMessageResult });
*/
@patocallaghan
patocallaghan / controllers.application.js
Last active May 17, 2018 13:00
Setting content in an ArrayProxy
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle'
});
import Controller from '@ember/controller';
import People from 'twiddle/models/people';
export default Controller.extend({
appName: 'Ember Twiddle',
init() {
}
});
@patocallaghan
patocallaghan / visitCallback.js
Last active May 15, 2018 07:09
Rewrites visit with callback to be sync
/*
BEFORE:
visit('/1', async function() {
yep();
no();
});
click('/2');
AFTER:
visit('/1');
@patocallaghan
patocallaghan / test-helper-rewrite.js
Last active May 14, 2018 11:09
Rewrites Ember async and sync test helpers to an exported function
/* eslint-env node */
/*
BEFORE
Em.Test.registerAsyncHelper('asyncHelper', function(app, $element) {
someFunction();
});
Em.Test.registerSyncHelper('syncHelper', function(app, $element) {
someFunction();
});
@patocallaghan
patocallaghan / ember-model.js
Last active May 2, 2018 21:41
Migrate Ember Model models from global to module syntax
/* eslint-env node */
/*
BEFORE
export default Em.Model.extend({
admin_id: attr(),
data: Em.attr(JsonType, { defaultValue: {} }),
admin: Em.belongsTo(Admin, { key: 'admin_id' }),
other: Em.hasMany(Admin, { key: 'admin_ids' }),
});
@patocallaghan
patocallaghan / import.js
Last active April 26, 2018 07:24
Codemode to re-import Ember into our JS files
/* eslint-env node */
export default function(file, api, options) {
let j = api.jscodeshift;
let printOptions = options.printOptions || { quote: 'single' };
let root = j(file.source);
let emberRegex = /^Em(ber)?$/;
let emberModule = {
source: {
@patocallaghan
patocallaghan / with-params.js
Last active April 16, 2018 00:01
Migrate mockFindAll to have withParams with app_id
/* eslint-env node */
/*
BEFORE
mockFindAll('email-template-data');
mockFindAll('message-folder').returns({ models: makeList('message-folder', 3) });
AFTER
mockFindAll('email-template-data').withParams({ app_id: 'tx2p130c' });
mockFindAll('message-folder').withParams({ app_id: 'tx2p130c' }).returns({ models: makeList('message-folder', 3) });
@patocallaghan
patocallaghan / code-occurrences-codemod.js
Last active May 1, 2018 23:06
Migrates this.countOccurrences to qunit-dom syntax
/* eslint-env node */
/*
BEFORE
assert.equal(this.countOccurrences('[data-test-something]'), 4);
assert.equal(this.countOccurrences('[data-test-something]'), 0);
assert.ok(this.countOccurrences('[data-test-something]') > 0, 'message')
AFTER
assert.dom('[data-test-something]').exists({ count: 4 });
import Ember from 'ember';
export default Ember.Component.extend({
classNames: ['myClass'],
});