diff --git a/.gitignore b/.gitignore index 86fceae..5ad14dd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -# See http://help.github.com/ignore-files/ for more about ignoring files. +# See https://help.github.com/ignore-files/ for more about ignoring files. # compiled output /dist @@ -13,5 +13,5 @@ /connect.lock /coverage/* /libpeerconnection.log -npm-debug.log +npm-debug.log* testem.log diff --git a/.jshintrc b/.jshintrc index 08096ef..d421faa 100644 --- a/.jshintrc +++ b/.jshintrc @@ -27,6 +27,6 @@ "strict": false, "white": false, "eqnull": true, - "esnext": true, + "esversion": 6, "unused": true } diff --git a/.npmignore b/.npmignore index 49996f5..fa8b147 100644 --- a/.npmignore +++ b/.npmignore @@ -1,14 +1,16 @@ -bower_components/ -tests/ -tmp/ -dist/ - +/bower_components +/config/ember-try.js +/dist +/tests +/tmp +**/.gitkeep .bowerrc .editorconfig .ember-cli +.gitignore +.jshintrc +.watchmanconfig .travis.yml -.npmignore -**/.gitkeep bower.json -Brocfile.js -testem.json +ember-cli-build.js +testem.js diff --git a/.travis.yml b/.travis.yml index ee67302..b3be07e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,17 +1,19 @@ --- language: node_js node_js: - - "0.12" + - "4" sudo: false cache: directories: - - node_modules + - $HOME/.npm + - $HOME/.cache # includes bowers cache env: - - EMBER_TRY_SCENARIO=default - - EMBER_TRY_SCENARIO=ember-1.13 + # we recommend testing LTS's and latest stable release (bonus points to beta/canary) + - EMBER_TRY_SCENARIO=ember-lts-2.4 + - EMBER_TRY_SCENARIO=ember-lts-2.8 - EMBER_TRY_SCENARIO=ember-release - EMBER_TRY_SCENARIO=ember-beta - EMBER_TRY_SCENARIO=ember-canary @@ -22,14 +24,17 @@ matrix: - env: EMBER_TRY_SCENARIO=ember-canary before_install: - - export PATH=/usr/local/phantomjs-2.0.0/bin:$PATH - - "npm config set spin false" - - "npm install -g npm@^2" + - npm config set spin false + - npm install -g bower + - bower --version + - npm install phantomjs-prebuilt + - node_modules/phantomjs-prebuilt/bin/phantomjs --version install: - - npm install -g bower - npm install - bower install script: - - ember try $EMBER_TRY_SCENARIO test + # Usually, it's ok to finish the test scenario without reverting + # to the addon's original dependency state, skipping "cleanup". + - ember try:one $EMBER_TRY_SCENARIO test --skip-cleanup diff --git a/LICENSE.md b/LICENSE.md index 00e9fbb..02000b5 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2015 +Copyright (c) 2016 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: diff --git a/addon/components/masonry-grid/component.js b/addon/components/masonry-grid/component.js index 861f60c..a2af8dd 100644 --- a/addon/components/masonry-grid/component.js +++ b/addon/components/masonry-grid/component.js @@ -1,5 +1,6 @@ -/* global imagesLoaded, Masonry */ +/* global Masonry */ import Ember from 'ember'; +import imagesLoaded from 'npm:imagesloaded'; import layout from './template'; const { @@ -8,14 +9,13 @@ const { defineProperty, getProperties, get, - set + set, + String: { htmlSafe }, + run: { scheduleOnce }, + A } = Ember; -const { - htmlSafe -} = Ember.String; - -const MASONRY_OPTION_KEYS = Ember.A([ +const MASONRY_OPTION_KEYS = A([ 'containerStyle', 'columnWidth', 'gutter', @@ -59,7 +59,7 @@ export default Component.extend({ didUpdateAttrs(attrsObj) { this._super(...arguments); - const shouldRebuild = MASONRY_OPTION_KEYS.any((option) => { + let shouldRebuild = MASONRY_OPTION_KEYS.any((option) => { return (attrsObj.newAttrs[option] !== attrsObj.oldAttrs[option]); }); @@ -73,12 +73,12 @@ export default Component.extend({ let masonry = get(this, 'masonry'); - Ember.run.scheduleOnce('afterRender', this, () => { + scheduleOnce('afterRender', this, () => { imagesLoaded(get(this, 'element'), () => { if (masonry) { masonry.reloadItems(); } else { - const options = get(this, 'options'); + let options = get(this, 'options'); masonry = set(this, 'masonry', new Masonry(get(this, 'element'), options)); masonry.on('layoutComplete', (layout) => { @@ -113,7 +113,7 @@ export default Component.extend({ }, _destroyMasonry() { - const masonry = get(this, 'masonry'); + let masonry = get(this, 'masonry'); if (masonry) { masonry.destroy(); diff --git a/addon/components/masonry-item/component.js b/addon/components/masonry-item/component.js index b015d0c..fd67487 100644 --- a/addon/components/masonry-item/component.js +++ b/addon/components/masonry-item/component.js @@ -4,13 +4,10 @@ import layout from './template'; const { Component, computed, - get + get, + String: { htmlSafe } } = Ember; -const { - htmlSafe -} = Ember.String; - export default Component.extend({ layout, classNameBindings: ['itemClass'], @@ -21,8 +18,8 @@ export default Component.extend({ itemClass: computed.oneWay('grid.itemClass'), click(ev) { - const onItemClick = get(this, 'onItemClick'); - const item = get(this, 'item'); + let onItemClick = get(this, 'onItemClick'); + let item = get(this, 'item'); if (onItemClick && typeof onItemClick === 'function') { onItemClick(ev, item); diff --git a/addon/instance-initializers/images-loaded.js b/addon/instance-initializers/images-loaded.js new file mode 100644 index 0000000..21edb4f --- /dev/null +++ b/addon/instance-initializers/images-loaded.js @@ -0,0 +1,8 @@ +export function initialize(/* appInstance */) { + // appInstance.inject('route', 'foo', 'service:foo'); +} + +export default { + name: 'images-loaded', + initialize +}; diff --git a/app/instance-initializers/images-loaded.js b/app/instance-initializers/images-loaded.js new file mode 100644 index 0000000..13df210 --- /dev/null +++ b/app/instance-initializers/images-loaded.js @@ -0,0 +1,2 @@ +import 'npm:imagesloaded'; +export { default, initialize } from 'ember-masonry-grid/instance-initializers/images-loaded'; diff --git a/blueprints/ember-masonry-grid/index.js b/blueprints/ember-masonry-grid/index.js index dcb4f9d..51fc99e 100644 --- a/blueprints/ember-masonry-grid/index.js +++ b/blueprints/ember-masonry-grid/index.js @@ -1,3 +1,4 @@ +var RSVP = require('rsvp'); module.exports = { name: 'ember-masonry-grid', description: 'Add ember-masonry-grid bower dependencies to app.', @@ -6,9 +7,13 @@ module.exports = { }, afterInstall: function () { - return this.addBowerPackagesToProject([ - { name: 'masonry' }, - { name: 'imagesloaded' } + return RSVP.all([ + this.addBowerPackageToProject('masonry'), + this.addPackagesToProject([ + { name: 'imagesloaded' }, + { name: 'ember-browserify' }, + { name: 'rsvp' } + ]) ]); } }; diff --git a/bower.json b/bower.json index 904637f..a28b3b9 100644 --- a/bower.json +++ b/bower.json @@ -1,16 +1,8 @@ { "name": "ember-masonry-grid", "dependencies": { - "ember": "^2.2.0", - "ember-cli-shims": "0.1.0", - "ember-cli-test-loader": "0.2.1", - "ember-load-initializers": "0.1.7", - "ember-qunit-notifications": "0.1.0", - "jquery": "^1.11.3", - "loader.js": "^3.5.0", - "qunit": "~1.20.0", - "imagesloaded": "~3.2.0", - "masonry": "~3.3.2", - "sinonjs": "~1.17.1" + "ember": "~2.10.0", + "ember-cli-shims": "0.1.3", + "masonry": "~3.3.2" } } diff --git a/config/ember-try.js b/config/ember-try.js index 59ea936..c58516b 100644 --- a/config/ember-try.js +++ b/config/ember-try.js @@ -1,44 +1,59 @@ /*jshint node:true*/ module.exports = { - scenarios: [ + scenarios: [ { - name: 'default', - dependencies: { } + name: 'ember-lts-2.4', + bower: { + dependencies: { + 'ember': 'components/ember#lts-2-4' + }, + resolutions: { + 'ember': 'lts-2-4' + } + } }, { - name: 'ember-1.13', - dependencies: { - 'ember': '~1.13.0' - }, - resolutions: { - 'ember': '~1.13.0' + name: 'ember-lts-2.8', + bower: { + dependencies: { + 'ember': 'components/ember#lts-2-8' + }, + resolutions: { + 'ember': 'lts-2-8' + } } }, { name: 'ember-release', - dependencies: { - 'ember': 'components/ember#release' - }, - resolutions: { - 'ember': 'release' + bower: { + dependencies: { + 'ember': 'components/ember#release' + }, + resolutions: { + 'ember': 'release' + } } }, { name: 'ember-beta', - dependencies: { - 'ember': 'components/ember#beta' - }, - resolutions: { - 'ember': 'beta' + bower: { + dependencies: { + 'ember': 'components/ember#beta' + }, + resolutions: { + 'ember': 'beta' + } } }, { name: 'ember-canary', - dependencies: { - 'ember': 'components/ember#canary' - }, - resolutions: { - 'ember': 'canary' + bower: { + dependencies: { + 'ember': 'components/ember#canary' + }, + resolutions: { + 'ember': 'canary' + } } } ] diff --git a/ember-cli-build.js b/ember-cli-build.js index c8c48f8..4ac3913 100644 --- a/ember-cli-build.js +++ b/ember-cli-build.js @@ -8,7 +8,7 @@ module.exports = function(defaults) { }); /* - This build file specifes the options for the dummy test app of this + This build file specifies the options for the dummy test app of this addon, located in `/tests/dummy` This build file does *not* influence how the addon or the app using it behave. You most likely want to be modifying `./index.js` or app's build file diff --git a/index.js b/index.js index 706e1c0..960761b 100644 --- a/index.js +++ b/index.js @@ -12,11 +12,6 @@ module.exports = { development: app.bowerDirectory + '/masonry/dist/masonry.pkgd.js', production: app.bowerDirectory + '/masonry/dist/masonry.pkgd.min.js' }); - - app.import({ - development: app.bowerDirectory + '/imagesloaded/imagesloaded.pkgd.js', - production: app.bowerDirectory + '/imagesloaded/imagesloaded.pkgd.min.js' - }); } } }; diff --git a/package.json b/package.json index 1a0b2bb..eca7afb 100644 --- a/package.json +++ b/package.json @@ -6,40 +6,46 @@ "test": "tests" }, "scripts": { - "start": "ember server", "build": "ember build", - "test": "ember try:testall" + "start": "ember server", + "test": "ember try:each" }, "repository": "https://github.com/gmurphey/ember-masonry-grid", "engines": { - "node": ">= 0.10.0" + "node": ">= 0.12.0" }, "author": "Garrett Murphey ", "license": "MIT", "devDependencies": { - "broccoli-asset-rev": "^2.2.0", - "ember-cli": "2.2.0-beta.1", - "ember-ajax": "0.7.1", - "ember-cli-app-version": "^1.0.0", - "ember-cli-content-security-policy": "0.4.0", - "ember-cli-dependency-checker": "^1.2.0", - "ember-cli-htmlbars-inline-precompile": "^0.3.1", - "ember-cli-inject-live-reload": "^1.3.1", - "ember-cli-qunit": "^1.1.0", - "ember-cli-release": "0.2.8", - "ember-cli-sri": "^2.0.0", + "broccoli-asset-rev": "^2.4.5", + "ember-ajax": "^2.4.1", + "ember-cli": "2.10.0", + "ember-cli-app-version": "^2.0.0", + "ember-cli-dependency-checker": "^1.3.0", + "ember-cli-htmlbars": "^1.0.10", + "ember-cli-htmlbars-inline-precompile": "^0.3.3", + "ember-cli-inject-live-reload": "^1.4.1", + "ember-cli-jshint": "^2.0.1", + "ember-cli-qunit": "^3.0.1", + "ember-cli-release": "^0.2.9", + "ember-cli-sri": "^2.1.0", + "ember-cli-test-loader": "^1.1.0", "ember-cli-uglify": "^1.2.0", - "ember-disable-prototype-extensions": "^1.0.0", - "ember-disable-proxy-controllers": "^1.0.1", - "ember-export-application-global": "^1.0.4", - "ember-sinon": "0.3.0", - "ember-suave": "1.2.3", + "ember-disable-prototype-extensions": "^1.1.0", + "ember-export-application-global": "^1.0.5", + "ember-load-initializers": "^0.5.1", "ember-resolver": "^2.0.3", - "ember-try": "~0.0.8" + "ember-sinon": "^0.5.1", + "ember-suave": "^4.0.0", + "ember-welcome-page": "^1.0.3", + "imagesloaded": "^4.1.1", + "loader.js": "^4.0.10" }, "dependencies": { - "ember-cli-babel": "^5.1.5", - "ember-cli-htmlbars": "^1.0.1" + "ember-browserify": "^1.1.13", + "ember-cli-babel": "^5.1.7", + "ember-cli-htmlbars": "^1.0.1", + "rsvp": "^3.3.3" }, "description": "Quickly and easily add masonry layouts to your app.", "keywords": [ diff --git a/testem.json b/testem.js similarity index 81% rename from testem.json rename to testem.js index 0f35392..26044b2 100644 --- a/testem.json +++ b/testem.js @@ -1,4 +1,5 @@ -{ +/*jshint node:true*/ +module.exports = { "framework": "qunit", "test_page": "tests/index.html?hidepassed", "disable_watching": true, @@ -9,4 +10,4 @@ "PhantomJS", "Chrome" ] -} +}; diff --git a/tests/.jshintrc b/tests/.jshintrc index 6ec0b7c..d2bd113 100644 --- a/tests/.jshintrc +++ b/tests/.jshintrc @@ -47,6 +47,6 @@ "strict": false, "white": false, "eqnull": true, - "esnext": true, + "esversion": 6, "unused": true } diff --git a/tests/dummy/app/app.js b/tests/dummy/app/app.js index 1b0516c..6f5ba58 100644 --- a/tests/dummy/app/app.js +++ b/tests/dummy/app/app.js @@ -1,13 +1,17 @@ import Ember from 'ember'; -import Resolver from 'ember-resolver'; -import loadInitializers from 'ember/load-initializers'; +import Resolver from './resolver'; +import loadInitializers from 'ember-load-initializers'; import config from './config/environment'; +const { + Application +} = Ember; + let App; Ember.MODEL_FACTORY_INJECTIONS = true; -App = Ember.Application.extend({ +App = Application.extend({ modulePrefix: config.modulePrefix, podModulePrefix: config.podModulePrefix, Resolver diff --git a/tests/dummy/app/controllers/index.js b/tests/dummy/app/controllers/index.js index 6499387..34e21f8 100644 --- a/tests/dummy/app/controllers/index.js +++ b/tests/dummy/app/controllers/index.js @@ -3,13 +3,15 @@ import Ember from 'ember'; const { Controller, get, - set + set, + run, + computed } = Ember; export default Controller.extend({ first: true, - currentObject: Ember.computed('first', 'model', function() { + currentObject: computed('first', 'model', function() { let modelIndex = this.get('first') ? 0 : 1; return this.get('model').objectAt(modelIndex); @@ -21,8 +23,8 @@ export default Controller.extend({ }, switchGutter() { - const gutter = get(this, 'gutter'); - const newGutter = (gutter === 10) ? 0 : 10; + let gutter = get(this, 'gutter'); + let newGutter = (gutter === 10) ? 0 : 10; set(this, 'gutter', newGutter); }, @@ -36,7 +38,7 @@ export default Controller.extend({ }, onItemClick(ev, item) { - Ember.run(() => { + run(() => { get(this, 'currentObject').removeObject(item); }); } diff --git a/tests/dummy/app/index.html b/tests/dummy/app/index.html index c9b4327..5120bd7 100644 --- a/tests/dummy/app/index.html +++ b/tests/dummy/app/index.html @@ -9,16 +9,16 @@ {{content-for "head"}} - - + + {{content-for "head-footer"}} {{content-for "body"}} - - + + {{content-for "body-footer"}} diff --git a/tests/dummy/app/resolver.js b/tests/dummy/app/resolver.js new file mode 100644 index 0000000..2fb563d --- /dev/null +++ b/tests/dummy/app/resolver.js @@ -0,0 +1,3 @@ +import Resolver from 'ember-resolver'; + +export default Resolver; diff --git a/tests/dummy/app/router.js b/tests/dummy/app/router.js index 3bba78e..fff83af 100644 --- a/tests/dummy/app/router.js +++ b/tests/dummy/app/router.js @@ -1,11 +1,16 @@ import Ember from 'ember'; import config from './config/environment'; -const Router = Ember.Router.extend({ - location: config.locationType +const { + Router +} = Ember; + +const EmberRouter = Router.extend({ + location: config.locationType, + rootURL: config.rootURL }); -Router.map(function() { +EmberRouter.map(function() { }); -export default Router; +export default EmberRouter; diff --git a/tests/dummy/app/routes/index.js b/tests/dummy/app/routes/index.js index 167efa9..c6b3194 100644 --- a/tests/dummy/app/routes/index.js +++ b/tests/dummy/app/routes/index.js @@ -1,7 +1,9 @@ import Ember from 'ember'; const { - Route + Route, + run, + A } = Ember; export default Route.extend({ @@ -11,9 +13,9 @@ export default Route.extend({ }, model() { - let model = Ember.A([ - Ember.A(), - Ember.A() + let model = A([ + A(), + A() ]); model.forEach((obj) => { @@ -36,13 +38,13 @@ export default Route.extend({ }, _appendItemToModel(model) { - Ember.run(() => { + run(() => { model.pushObject(Object.create(this.get('item'))); }); }, _prependItemToModel(model) { - Ember.run(() => { + run(() => { model.insertAt(0, Object.create(this.get('item'))); }); } diff --git a/tests/dummy/config/environment.js b/tests/dummy/config/environment.js index c59bcd5..703c472 100644 --- a/tests/dummy/config/environment.js +++ b/tests/dummy/config/environment.js @@ -4,12 +4,16 @@ module.exports = function(environment) { var ENV = { modulePrefix: 'dummy', environment: environment, - baseURL: '/', + rootURL: '/', locationType: 'auto', EmberENV: { FEATURES: { // Here you can enable experimental features on an ember canary build // e.g. 'with-controller': true + }, + EXTEND_PROTOTYPES: { + // Prevent Ember Data from overriding Date.parse. + Date: false } }, @@ -29,7 +33,6 @@ module.exports = function(environment) { if (environment === 'test') { // Testem prefers this... - ENV.baseURL = '/'; ENV.locationType = 'none'; // keep test console output quieter diff --git a/tests/helpers/destroy-app.js b/tests/helpers/destroy-app.js index c3d4d1a..2cef350 100644 --- a/tests/helpers/destroy-app.js +++ b/tests/helpers/destroy-app.js @@ -1,5 +1,8 @@ import Ember from 'ember'; +const { + run +} = Ember; export default function destroyApp(application) { - Ember.run(application, 'destroy'); + run(application, 'destroy'); } diff --git a/tests/helpers/module-for-acceptance.js b/tests/helpers/module-for-acceptance.js deleted file mode 100644 index ed23003..0000000 --- a/tests/helpers/module-for-acceptance.js +++ /dev/null @@ -1,23 +0,0 @@ -import { module } from 'qunit'; -import startApp from '../helpers/start-app'; -import destroyApp from '../helpers/destroy-app'; - -export default function(name, options = {}) { - module(name, { - beforeEach() { - this.application = startApp(); - - if (options.beforeEach) { - options.beforeEach.apply(this, arguments); - } - }, - - afterEach() { - destroyApp(this.application); - - if (options.afterEach) { - options.afterEach.apply(this, arguments); - } - } - }); -} diff --git a/tests/helpers/resolver.js b/tests/helpers/resolver.js index ac94b1b..b208d38 100644 --- a/tests/helpers/resolver.js +++ b/tests/helpers/resolver.js @@ -1,4 +1,4 @@ -import Resolver from 'ember-resolver'; +import Resolver from '../../resolver'; import config from '../../config/environment'; const resolver = Resolver.create(); diff --git a/tests/helpers/start-app.js b/tests/helpers/start-app.js index e098f1d..ba9b6f9 100644 --- a/tests/helpers/start-app.js +++ b/tests/helpers/start-app.js @@ -2,13 +2,18 @@ import Ember from 'ember'; import Application from '../../app'; import config from '../../config/environment'; +const { + assign, + run +} = Ember; + export default function startApp(attrs) { let application; - let attributes = Ember.merge({}, config.APP); - attributes = Ember.merge(attributes, attrs); // use defaults, but you can override; + // use defaults, but you can override + let attributes = assign({}, config.APP, attrs); - Ember.run(() => { + run(() => { application = Application.create(attributes); application.setupForTesting(); application.injectTestHelpers(); diff --git a/tests/index.html b/tests/index.html index 2d3ff6a..5209b85 100644 --- a/tests/index.html +++ b/tests/index.html @@ -10,9 +10,9 @@ {{content-for "head"}} {{content-for "test-head"}} - - - + + + {{content-for "head-footer"}} {{content-for "test-head-footer"}} @@ -21,12 +21,11 @@ {{content-for "body"}} {{content-for "test-body"}} - - - - - - + + + + + {{content-for "body-footer"}} {{content-for "test-body-footer"}} diff --git a/tests/integration/components/masonry-grid/component-test.js b/tests/integration/components/masonry-grid/component-test.js index 86278ab..b8a5a06 100644 --- a/tests/integration/components/masonry-grid/component-test.js +++ b/tests/integration/components/masonry-grid/component-test.js @@ -1,7 +1,10 @@ import Ember from 'ember'; import { moduleForComponent, test } from 'ember-qunit'; import hbs from 'htmlbars-inline-precompile'; - +const { + A, + run +} = Ember; let items; moduleForComponent('masonry-grid', 'Integration | Component | masonry grid', { @@ -21,8 +24,8 @@ test('it renders a default layout', function(assert) { assert.expect(4); - Ember.run(() => { - this.set('items', Ember.A(items)); + run(() => { + this.set('items', A(items)); }); this.render(hbs` @@ -47,8 +50,8 @@ test('the masonry-item class is based on the itemSelector passed to masonry-grid assert.expect(1); - Ember.run(() => { - this.set('items', Ember.A(items)); + run(() => { + this.set('items', A(items)); this.set('customSelector', '.piece'); }); @@ -69,8 +72,8 @@ test('it renders a custom layout', function(assert) { assert.expect(4); - Ember.run(() => { - this.set('items', Ember.A(items)); + run(() => { + this.set('items', A(items)); }); this.render(hbs` @@ -95,8 +98,8 @@ test('it renders a custom layout', function(assert) { test('it triggers masonry\'s layoutComplete event after rendering', function(assert) { assert.expect(1); - Ember.run(() => { - this.set('items', Ember.A(items)); + run(() => { + this.set('items', A(items)); this.on('layoutComplete', () => { assert.ok(true, 'layoutComplete action called'); }); @@ -112,7 +115,7 @@ test('it triggers masonry\'s layoutComplete event after rendering', function(ass test('it triggers a click event when an item is clicked', function(assert) { assert.expect(1); - this.set('items', Ember.A(items)); + this.set('items', A(items)); this.on('itemClicked', (ev, item) => { assert.deepEqual(this.get('items.firstObject'), item); @@ -129,4 +132,3 @@ test('it triggers a click event when an item is clicked', function(assert) { {{/masonry-grid}} `); }); - diff --git a/tests/unit/components/masonry-grid/component-test.js b/tests/unit/components/masonry-grid/component-test.js index ffffa91..d44dc66 100644 --- a/tests/unit/components/masonry-grid/component-test.js +++ b/tests/unit/components/masonry-grid/component-test.js @@ -44,7 +44,7 @@ test('the options hash updates when masonry properties are changed', function(as assert.equal(component.get('options.transitionDuration'), '0.5s'); }); -test('didUpdateAttrs calls super and destroys masonry if any options have changed', function(assert) { +test('didUpdateAttrs destroys masonry if any options have changed', function(assert) { let component = this.subject(); let args = [{ oldAttrs: { @@ -55,14 +55,10 @@ test('didUpdateAttrs calls super and destroys masonry if any options have change } }]; - component._super = sinon.stub(); component._destroyMasonry = sinon.stub(); component.didUpdateAttrs(...args); - assert.ok(component._super.calledOnce, '_super was called once'); - assert.deepEqual(component._super.args[0], args, '_super was called with the attrs passed to didUpdateAttrs'); - assert.ok(component._destroyMasonry.calledOnce, 'masonry was destroyed'); }); @@ -77,13 +73,9 @@ test('didUpdateAttrs does nothing if no masonry-specific options were changed', } }]; - component._super = sinon.stub(); component._destroyMasonry = sinon.stub(); component.didUpdateAttrs(...args); - assert.ok(component._super.calledOnce, '_super was called once'); - assert.deepEqual(component._super.args[0], args, '_super was called with the attrs passed to didUpdateAttrs'); - assert.ok(component._destroyMasonry.notCalled, 'masonry is not destroyed'); });