From 25ab439161077d6c00fe89af5f32f968eeebdec6 Mon Sep 17 00:00:00 2001 From: santhoshRaju91 Date: Fri, 12 Jan 2018 13:07:12 +0530 Subject: [PATCH 1/3] Upgraded the addon with passing test cases only for eslint. --- .editorconfig | 14 --- .eslintrc.js | 13 +++ .gitignore | 4 +- .npmignore | 20 ++-- .travis.yml | 25 +++-- .watchmanconfig | 2 +- Brocfile.js | 16 --- addon/components/sortable-items.js | 118 +++++++++++---------- addon/templates/sortable-items-partial.hbs | 4 + app/controllers/application.js | 1 + app/templates/sortable-items-partial.js | 1 + bower.json | 12 +-- config/ember-try.js | 94 +++++++++++----- config/environment.js | 1 + ember-cli-build.js | 17 +++ package.json | 35 +++--- testem.js | 12 +++ tests/.eslintrc.js | 5 + tests/dummy/app/app.js | 8 +- tests/dummy/app/controllers/application.js | 31 ++++++ tests/dummy/app/index.html | 16 +-- tests/dummy/app/resolver.js | 3 + tests/dummy/app/router.js | 5 +- tests/dummy/app/routes/application.js | 22 ++++ tests/dummy/app/templates/application.hbs | 13 +++ tests/dummy/config/environment.js | 9 +- tests/helpers/destroy-app.js | 5 + tests/helpers/module-for-acceptance.js | 23 ++++ tests/helpers/resolver.js | 4 +- tests/helpers/start-app.js | 12 +-- tests/index.html | 32 +++--- tests/unit/controllers/application-test.js | 12 +++ 32 files changed, 384 insertions(+), 205 deletions(-) create mode 100644 .eslintrc.js delete mode 100644 Brocfile.js create mode 100644 addon/templates/sortable-items-partial.hbs create mode 100644 app/controllers/application.js create mode 100644 app/templates/sortable-items-partial.js create mode 100644 ember-cli-build.js create mode 100644 testem.js create mode 100644 tests/.eslintrc.js create mode 100644 tests/dummy/app/controllers/application.js create mode 100644 tests/dummy/app/resolver.js create mode 100644 tests/dummy/app/routes/application.js create mode 100644 tests/helpers/destroy-app.js create mode 100644 tests/helpers/module-for-acceptance.js create mode 100644 tests/unit/controllers/application-test.js diff --git a/.editorconfig b/.editorconfig index 47c5438..219985c 100644 --- a/.editorconfig +++ b/.editorconfig @@ -13,22 +13,8 @@ insert_final_newline = true indent_style = space indent_size = 2 -[*.js] -indent_style = space -indent_size = 2 - [*.hbs] insert_final_newline = false -indent_style = space -indent_size = 2 - -[*.css] -indent_style = space -indent_size = 2 - -[*.html] -indent_style = space -indent_size = 2 [*.{diff,md}] trim_trailing_whitespace = false diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..fbfc364 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,13 @@ +module.exports = { + root: true, + parserOptions: { + ecmaVersion: 6, + sourceType: 'module' + }, + extends: 'eslint:recommended', + env: { + browser: true + }, + rules: { + } +}; 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/.npmignore b/.npmignore index 49996f5..889b2bf 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 +.eslintrc.js +.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 621f310..5235bf5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,22 +1,23 @@ --- language: node_js node_js: - - "0.12" + - "6" sudo: false cache: directories: - - node_modules + - $HOME/.npm + - $HOME/.cache # includes bowers cache env: - - EMBER_TRY_SCENARIO=ember-1.10 - - EMBER_TRY_SCENARIO=ember-1.11 - - EMBER_TRY_SCENARIO=ember-1.12 - - EMBER_TRY_SCENARIO=default + # 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 + - EMBER_TRY_SCENARIO=ember-default matrix: fast_finish: true @@ -24,14 +25,16 @@ 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 phantomjs-prebuilt + - bower --version + - 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". + - node_modules/.bin/ember try:one $EMBER_TRY_SCENARIO test --skip-cleanup diff --git a/.watchmanconfig b/.watchmanconfig index 5e9462c..e7834e3 100644 --- a/.watchmanconfig +++ b/.watchmanconfig @@ -1,3 +1,3 @@ { - "ignore_dirs": ["tmp"] + "ignore_dirs": ["tmp", "dist"] } diff --git a/Brocfile.js b/Brocfile.js deleted file mode 100644 index 2a682c0..0000000 --- a/Brocfile.js +++ /dev/null @@ -1,16 +0,0 @@ -/* jshint node: true */ -/* global require, module */ - -var EmberAddon = require('ember-cli/lib/broccoli/ember-addon'); - -/* - This Brocfile specifes the options for the dummy test app of this - addon, located in `/tests/dummy` - - This Brocfile does *not* influence how the addon or the app using it - behave. You most likely want to be modifying `./index.js` or app's Brocfile -*/ - -var app = new EmberAddon(); - -module.exports = app.toTree(); diff --git a/addon/components/sortable-items.js b/addon/components/sortable-items.js index 1737c1b..197a186 100644 --- a/addon/components/sortable-items.js +++ b/addon/components/sortable-items.js @@ -1,14 +1,22 @@ import Ember from 'ember'; import layout from '../templates/components/sortable-items'; + /* global Sortable */ +const { + Component, + computed, + observer, + run +} = Ember; + var pid, frozen, frozenObjects, positions; -var SortableItems = Ember.Component.extend({ - target: Ember.computed.alias('targetObject'), // Bubble up all actions +export default Component.extend({ + target: computed.alias('targetObject'), layout: layout, tagName: "ul", classNames: ['sortable-items'], @@ -37,9 +45,11 @@ var SortableItems = Ember.Component.extend({ Initializes Sortable with given properties and binds callbacks to private methods */ - setup: function() { - var options = { + didInsertElement() { + this._super(...arguments); + + let options = { group: this.get('group'), sort: this.get('sort'), disabled: this.get('disabled'), @@ -51,14 +61,14 @@ var SortableItems = Ember.Component.extend({ scroll: this.get('scroll'), scrollSensitivity: this.get('scrollSensitivity'), scrollSpeed: this.get('scrollSpeed'), - onStart: Ember.run.bind(this, this._onStart), - onEnd: Ember.run.bind(this, this._onEnd), - onAdd: Ember.run.bind(this, this._onAdd), - onUpdate: Ember.run.bind(this, this._onUpdate), - onSort: Ember.run.bind(this, this._onSort), - onRemove: Ember.run.bind(this, this._onRemove), - onFilter: Ember.run.bind(this, this._onFilter), - onMove: Ember.run.bind(this, this._onMove) + onStart: run.bind(this, this._onStart), + onEnd: run.bind(this, this._onEnd), + onAdd: run.bind(this, this._onAdd), + onUpdate: run.bind(this, this._onUpdate), + onSort: run.bind(this, this._onSort), + onRemove: run.bind(this, this._onRemove), + onFilter: run.bind(this, this._onFilter), + onMove: run.bind(this, this._onMove) }; if (this.get('draggable')) { @@ -67,22 +77,21 @@ var SortableItems = Ember.Component.extend({ this.set('_sortableInstance', new Sortable(this.$()[0], options)); - }.on('didInsertElement'), - + }, /** @method _onStart @private The user has started to drag an item */ - _onStart: function(evt) { + _onStart(evt) { - Ember.run(this, function() { - var freezeSelector = this.get('freeze'); + run(this, function() { + let freezeSelector = this.get('freeze'); if (freezeSelector) { - var _sortableInstance = this.get('_sortableInstance'); - var itemCollection = this.get('itemCollection'); + let _sortableInstance = this.get('_sortableInstance'); + let itemCollection = this.get('itemCollection'); frozenObjects = []; frozen = [].slice.call(_sortableInstance.el.querySelectorAll(freezeSelector)); @@ -104,7 +113,7 @@ var SortableItems = Ember.Component.extend({ @private The user has stopped draggging an item */ - _onEnd: function(evt) { + _onEnd(evt) { this._sendOutAction('onEndAction', evt); }, @@ -113,7 +122,7 @@ var SortableItems = Ember.Component.extend({ @private An item is dropped into the list from another list */ - _onAdd: function(evt) { + _onAdd(evt) { this._sendOutAction('onAddAction', evt); }, @@ -122,29 +131,27 @@ var SortableItems = Ember.Component.extend({ @private Changed sorting within list */ - _onUpdate: function(evt) { + _onUpdate(evt) { this._sendOutAction('onUpdateAction', evt); - Ember.run(this, function() { - var collection = this.get('itemCollection'); - var item = collection.objectAt(evt.oldIndex); - var list = evt.to; - var freezeSelector = this.get('freeze'); - collection.removeAt(evt.oldIndex); - collection.insertAt(evt.newIndex, item); + run(this, function() { + let collection = this.get('itemCollection'); + let item = collection[evt.oldIndex]; + let freezeSelector = this.get('freeze'); + delete collection[evt.oldIndex]; + collection.splice(evt.newIndex, 0, item); if (freezeSelector) { frozenObjects.forEach(function(obj, i) { - var pos = positions[i]; - if (collection.objectAt(pos) !== obj) { - var realPos = collection.indexOf(obj); - collection.removeAt(realPos); - collection.insertAt(pos, obj); + let pos = positions[i]; + if (collection[pos] !== obj) { + let realPos = collection.indexOf(obj); + delete collection[realPos]; + collection.splice(pos, 0, obj); } }); } - this.sendAction('onItemMoveAction', item, evt.oldIndex, evt.newIndex); }); @@ -155,7 +162,7 @@ var SortableItems = Ember.Component.extend({ @private Called when any change occurs within the list (add, update, remove) */ - _onSort: function(evt) { + _onSort(evt) { this._sendOutAction('onSortAction', evt); }, @@ -165,7 +172,7 @@ var SortableItems = Ember.Component.extend({ @private An item is removed from the list and added into another */ - _onRemove: function(evt) { + _onRemove(evt) { this._sendOutAction('onRemoveAction', evt); }, @@ -174,7 +181,7 @@ var SortableItems = Ember.Component.extend({ @private Called when an attempt is made to drag a filtered item */ - _onFilter: function(evt) { + _onFilter(evt) { this._sendOutAction('onFilterAction', evt); }, @@ -183,23 +190,23 @@ var SortableItems = Ember.Component.extend({ @private Called when re-ordering the list during drag */ - _onMove: function(evt) { + _onMove(evt) { this._sendOutAction('onMoveAction', evt); - var vector; - var freeze = false; - var freezeSelector = this.get('freeze'); + let vector; + let freeze = false; + let freezeSelector = this.get('freeze'); if (freezeSelector) { clearTimeout(pid); pid = setTimeout(function () { - var list = evt.to; + let list = evt.to; frozen.forEach(function (el, i) { - var idx = positions[i]; + let idx = positions[i]; if (list.children[idx] !== el) { - var realIdx = Sortable.utils.index(el); + let realIdx = Sortable.utils.index(el); list.insertBefore(el, list.children[idx + (realIdx < idx)]); } }); @@ -224,10 +231,10 @@ var SortableItems = Ember.Component.extend({ @private Used to update sortable properties */ - _updateOptionDisabled: function() { - var _sortableInstance = this.get('_sortableInstance'); + _updateOptionDisabled: observer('disabled', function() { + let _sortableInstance = this.get('_sortableInstance'); _sortableInstance.option('disabled', this.get('disabled')); - }.observes('disabled'), + }), /** @method _sendOutAction @@ -235,19 +242,18 @@ var SortableItems = Ember.Component.extend({ Used as an interface for the sendAction method, checks if consumer defined an action before sending one out */ - _sendOutAction: function(action, evt) { + _sendOutAction(action, evt) { if (this.get(action)) { this.sendAction(action, evt); } }, - teardown: function() { - var _sortableInstance = this.get('_sortableInstance'); + + willDestroyElement() { + this._super(...arguments); + let _sortableInstance = this.get('_sortableInstance'); if (_sortableInstance) { _sortableInstance.destroy(); } - }.on('willDestroyElement') - -}); - -export default SortableItems; + } +}); \ No newline at end of file diff --git a/addon/templates/sortable-items-partial.hbs b/addon/templates/sortable-items-partial.hbs new file mode 100644 index 0000000..c3d401d --- /dev/null +++ b/addon/templates/sortable-items-partial.hbs @@ -0,0 +1,4 @@ +
+
{{ item.name }}
+
{{ item.content }}
+
\ No newline at end of file diff --git a/app/controllers/application.js b/app/controllers/application.js new file mode 100644 index 0000000..da71b8a --- /dev/null +++ b/app/controllers/application.js @@ -0,0 +1 @@ +export { default } from 'ember-cli-sortable/controllers/application'; \ No newline at end of file diff --git a/app/templates/sortable-items-partial.js b/app/templates/sortable-items-partial.js new file mode 100644 index 0000000..941f112 --- /dev/null +++ b/app/templates/sortable-items-partial.js @@ -0,0 +1 @@ +export { default } from 'ember-cli-sortable/templates/sortable-items-partial'; diff --git a/bower.json b/bower.json index 11655b3..a51e906 100644 --- a/bower.json +++ b/bower.json @@ -1,16 +1,6 @@ { "name": "ember-cli-sortable", "dependencies": { - "ember": "1.11.1", - "ember-cli-shims": "ember-cli/ember-cli-shims#0.0.3", - "ember-cli-test-loader": "ember-cli-test-loader#0.1.3", - "ember-load-initializers": "ember-cli/ember-load-initializers#0.1.4", - "ember-qunit": "0.3.3", - "ember-qunit-notifications": "0.0.7", - "ember-resolver": "~0.1.15", - "jquery": "^1.11.1", - "loader.js": "ember-cli/loader.js#3.2.0", - "qunit": "~1.17.1", "Sortable": "~1.2.0" } -} +} \ No newline at end of file diff --git a/config/ember-try.js b/config/ember-try.js index 7c2200a..a070124 100644 --- a/config/ember-try.js +++ b/config/ember-try.js @@ -1,52 +1,90 @@ +/* eslint-env node */ module.exports = { scenarios: [ { - name: 'default', - dependencies: { } - }, - { - name: 'ember-1.10', - dependencies: { - 'ember': '~1.10.0' - } - }, - { - name: 'ember-1.11', - dependencies: { - 'ember': '~1.11.0' + name: 'ember-lts-2.4', + bower: { + dependencies: { + 'ember': 'components/ember#lts-2-4' + }, + resolutions: { + 'ember': 'lts-2-4' + } + }, + npm: { + devDependencies: { + 'ember-source': null + } } }, { - name: 'ember-1.12', - dependencies: { - 'ember': '~1.12.0' + name: 'ember-lts-2.8', + bower: { + dependencies: { + 'ember': 'components/ember#lts-2-8' + }, + resolutions: { + 'ember': 'lts-2-8' + } + }, + npm: { + devDependencies: { + 'ember-source': null + } } }, { name: 'ember-release', - dependencies: { - 'ember': 'components/ember#release' + bower: { + dependencies: { + 'ember': 'components/ember#release' + }, + resolutions: { + 'ember': 'release' + } }, - resolutions: { - 'ember': 'release' + npm: { + devDependencies: { + 'ember-source': null + } } }, { name: 'ember-beta', - dependencies: { - 'ember': 'components/ember#beta' + bower: { + dependencies: { + 'ember': 'components/ember#beta' + }, + resolutions: { + 'ember': 'beta' + } }, - resolutions: { - 'ember': 'beta' + npm: { + devDependencies: { + 'ember-source': null + } } }, { name: 'ember-canary', - dependencies: { - 'ember': 'components/ember#canary' + bower: { + dependencies: { + 'ember': 'components/ember#canary' + }, + resolutions: { + 'ember': 'canary' + } }, - resolutions: { - 'ember': 'canary' + npm: { + devDependencies: { + 'ember-source': null + } + } + }, + { + name: 'ember-default', + npm: { + devDependencies: {} } } ] diff --git a/config/environment.js b/config/environment.js index 0dfaed4..012a412 100644 --- a/config/environment.js +++ b/config/environment.js @@ -1,3 +1,4 @@ +/* eslint-env node */ 'use strict'; module.exports = function(/* environment, appConfig */) { diff --git a/ember-cli-build.js b/ember-cli-build.js new file mode 100644 index 0000000..5e6f037 --- /dev/null +++ b/ember-cli-build.js @@ -0,0 +1,17 @@ +/* eslint-env node */ +const EmberAddon = require('ember-cli/lib/broccoli/ember-addon'); + +module.exports = function(defaults) { + var app = new EmberAddon(defaults, { + // Add options here + }); + + /* + 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 + */ + + return app.toTree(); +}; diff --git a/package.json b/package.json index db5152d..247f21d 100644 --- a/package.json +++ b/package.json @@ -24,19 +24,26 @@ }, "license": "MIT", "devDependencies": { - "broccoli-asset-rev": "^2.0.2", - "ember-cli": "0.2.7", + "broccoli-asset-rev": "^2.4.5", + "ember-cli": "^2.12.3", "ember-cli-app-version": "0.3.3", - "ember-cli-content-security-policy": "0.4.0", - "ember-cli-dependency-checker": "^1.0.0", - "ember-cli-ic-ajax": "0.1.1", - "ember-cli-inject-live-reload": "^1.3.0", - "ember-cli-qunit": "0.3.13", - "ember-cli-uglify": "^1.0.1", + "ember-cli-dependency-checker": "^1.3.0", + "ember-cli-eslint": "^3.0.0", + "ember-cli-htmlbars": "^1.1.1", + "ember-cli-htmlbars-inline-precompile": "^0.3.6", + "ember-cli-inject-live-reload": "^1.4.1", + "ember-cli-qunit": "^3.1.0", + "ember-cli-shims": "^1.0.2", + "ember-cli-sri": "^2.1.0", + "ember-cli-uglify": "^1.2.0", + "ember-disable-prototype-extensions": "^1.1.0", "ember-disable-proxy-controllers": "^1.0.0", - "ember-export-application-global": "^1.0.2", - "ember-disable-prototype-extensions": "^1.0.0", - "ember-try": "0.0.6" + "ember-export-application-global": "^1.0.5", + "ember-load-initializers": "^0.6.0", + "ember-resolver": "^2.0.3", + "ember-source": "~2.12.0", + "ember-try": "0.0.6", + "loader.js": "^4.2.3" }, "keywords": [ "ember-addon", @@ -44,10 +51,10 @@ "rubaxa-sortable" ], "dependencies": { - "ember-cli-babel": "^5.0.0", - "ember-cli-htmlbars": "0.7.6" + "ember-cli-babel": "^5.1.7", + "ember-cli-htmlbars": "^1.1.1" }, "ember-addon": { "configPath": "tests/dummy/config" } -} +} \ No newline at end of file diff --git a/testem.js b/testem.js new file mode 100644 index 0000000..b234048 --- /dev/null +++ b/testem.js @@ -0,0 +1,12 @@ +/* eslint-env node */ +module.exports = { + "test_page": "tests/index.html?hidepassed", + "disable_watching": true, + "launch_in_ci": [ + "PhantomJS" + ], + "launch_in_dev": [ + "PhantomJS", + "Chrome" + ] +}; diff --git a/tests/.eslintrc.js b/tests/.eslintrc.js new file mode 100644 index 0000000..fbf2555 --- /dev/null +++ b/tests/.eslintrc.js @@ -0,0 +1,5 @@ +module.exports = { + env: { + embertest: true + } +}; diff --git a/tests/dummy/app/app.js b/tests/dummy/app/app.js index 8d66b95..831ad61 100644 --- a/tests/dummy/app/app.js +++ b/tests/dummy/app/app.js @@ -1,16 +1,16 @@ 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'; -var App; +let App; Ember.MODEL_FACTORY_INJECTIONS = true; App = Ember.Application.extend({ modulePrefix: config.modulePrefix, podModulePrefix: config.podModulePrefix, - Resolver: Resolver + Resolver }); loadInitializers(App, config.modulePrefix); diff --git a/tests/dummy/app/controllers/application.js b/tests/dummy/app/controllers/application.js new file mode 100644 index 0000000..32d4a3a --- /dev/null +++ b/tests/dummy/app/controllers/application.js @@ -0,0 +1,31 @@ +import Ember from 'ember'; + +const { + Controller, + Logger +} = Ember; + +export default Controller.extend({ + + init() { + this._super(...arguments); + let array = [{ + name: 'TRANSACTION DATE', + content: ['TXN00002', 'TXN00003', 'TXN00004', 'TXN00005'] + }, { + name: 'VALUE DATE', + content: ['TXN00002', 'TXN00003', 'TXN00004', 'TXN00005'] + }, { + name: 'TRANSACTION REFERENCE', + content: ['TXN00002', 'TXN00003', 'TXN00004', 'TXN00005'] + }]; + + this.set('someArray', array); + }, + + actions: { + itemMoved(item) { + Logger.log(item); + } + } +}); \ No newline at end of file diff --git a/tests/dummy/app/index.html b/tests/dummy/app/index.html index 1c49d36..5120bd7 100644 --- a/tests/dummy/app/index.html +++ b/tests/dummy/app/index.html @@ -7,19 +7,19 @@ - {{content-for 'head'}} + {{content-for "head"}} - - + + - {{content-for 'head-footer'}} + {{content-for "head-footer"}} - {{content-for 'body'}} + {{content-for "body"}} - - + + - {{content-for 'body-footer'}} + {{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 cef554b..cdc2578 100644 --- a/tests/dummy/app/router.js +++ b/tests/dummy/app/router.js @@ -1,8 +1,9 @@ import Ember from 'ember'; import config from './config/environment'; -var Router = Ember.Router.extend({ - location: config.locationType +const Router = Ember.Router.extend({ + location: config.locationType, + rootURL: config.rootURL }); Router.map(function() { diff --git a/tests/dummy/app/routes/application.js b/tests/dummy/app/routes/application.js new file mode 100644 index 0000000..326ea2f --- /dev/null +++ b/tests/dummy/app/routes/application.js @@ -0,0 +1,22 @@ +import Ember from 'ember'; + +const { + Route +} = Ember; + +export default Route.extend({ + model() { + let array = [ + { + name: 'TRANSACTION REFERENCE', + content: ['TX00001', 'TX00002', 'TX00003', 'TX00004'] + }, + { + name: 'VALUE DATE', + content: ['TX00001', 'TX00002', 'TX00003', 'TX00004'] + } + ]; + + return array; + } +}) \ No newline at end of file diff --git a/tests/dummy/app/templates/application.hbs b/tests/dummy/app/templates/application.hbs index 05eb936..0b4e10c 100644 --- a/tests/dummy/app/templates/application.hbs +++ b/tests/dummy/app/templates/application.hbs @@ -1,3 +1,16 @@

Welcome to Ember.js

+{{sortable-items + itemCollection=model + animation=100 + handle=".item__handle" + filter=".item--pinned" + draggable=".item" + ghostClass="item--ghost" + onItemMoveAction="itemMoved" + templateName="sortable-items-partial" + noItemText="
No items found
" +}} + + {{outlet}} diff --git a/tests/dummy/config/environment.js b/tests/dummy/config/environment.js index c59bcd5..6a378d3 100644 --- a/tests/dummy/config/environment.js +++ b/tests/dummy/config/environment.js @@ -1,15 +1,19 @@ -/* jshint node: true */ +/* eslint-env node */ 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 new file mode 100644 index 0000000..c3d4d1a --- /dev/null +++ b/tests/helpers/destroy-app.js @@ -0,0 +1,5 @@ +import Ember from 'ember'; + +export default function destroyApp(application) { + Ember.run(application, 'destroy'); +} diff --git a/tests/helpers/module-for-acceptance.js b/tests/helpers/module-for-acceptance.js new file mode 100644 index 0000000..76996fd --- /dev/null +++ b/tests/helpers/module-for-acceptance.js @@ -0,0 +1,23 @@ +import { module } from 'qunit'; +import Ember from 'ember'; +import startApp from '../helpers/start-app'; +import destroyApp from '../helpers/destroy-app'; + +const { RSVP: { Promise } } = Ember; + +export default function(name, options = {}) { + module(name, { + beforeEach() { + this.application = startApp(); + + if (options.beforeEach) { + return options.beforeEach.apply(this, arguments); + } + }, + + afterEach() { + let afterEach = options.afterEach && options.afterEach.apply(this, arguments); + return Promise.resolve(afterEach).then(() => destroyApp(this.application)); + } + }); +} diff --git a/tests/helpers/resolver.js b/tests/helpers/resolver.js index 28f4ece..b208d38 100644 --- a/tests/helpers/resolver.js +++ b/tests/helpers/resolver.js @@ -1,7 +1,7 @@ -import Resolver from 'ember/resolver'; +import Resolver from '../../resolver'; import config from '../../config/environment'; -var resolver = Resolver.create(); +const resolver = Resolver.create(); resolver.namespace = { modulePrefix: config.modulePrefix, diff --git a/tests/helpers/start-app.js b/tests/helpers/start-app.js index 16cc7c3..9a605eb 100644 --- a/tests/helpers/start-app.js +++ b/tests/helpers/start-app.js @@ -1,19 +1,15 @@ import Ember from 'ember'; import Application from '../../app'; -import Router from '../../router'; import config from '../../config/environment'; export default function startApp(attrs) { - var application; - - var attributes = Ember.merge({}, config.APP); + let attributes = Ember.merge({}, config.APP); attributes = Ember.merge(attributes, attrs); // use defaults, but you can override; - Ember.run(function() { - application = Application.create(attributes); + return Ember.run(() => { + let application = Application.create(attributes); application.setupForTesting(); application.injectTestHelpers(); + return application; }); - - return application; } diff --git a/tests/index.html b/tests/index.html index 8fea6fe..5209b85 100644 --- a/tests/index.html +++ b/tests/index.html @@ -7,27 +7,27 @@ - {{content-for 'head'}} - {{content-for 'test-head'}} + {{content-for "head"}} + {{content-for "test-head"}} - - - + + + - {{content-for 'head-footer'}} - {{content-for 'test-head-footer'}} + {{content-for "head-footer"}} + {{content-for "test-head-footer"}} + {{content-for "body"}} + {{content-for "test-body"}} - {{content-for 'body'}} - {{content-for 'test-body'}} - - - - - + + + + + - {{content-for 'body-footer'}} - {{content-for 'test-body-footer'}} + {{content-for "body-footer"}} + {{content-for "test-body-footer"}} diff --git a/tests/unit/controllers/application-test.js b/tests/unit/controllers/application-test.js new file mode 100644 index 0000000..eb711c9 --- /dev/null +++ b/tests/unit/controllers/application-test.js @@ -0,0 +1,12 @@ +import { moduleFor, test } from 'ember-qunit'; + +moduleFor('controller:application', { + // Specify the other units that are required for this test. + // needs: ['controller:foo'] +}); + +// Replace this with your real tests. +test('it exists', function(assert) { + var controller = this.subject(); + assert.ok(controller); +}); From 7719230150d99934e683f6390c6ad49629b6fece Mon Sep 17 00:00:00 2001 From: santhoshRaju91 Date: Fri, 12 Jan 2018 13:09:05 +0530 Subject: [PATCH 2/3] Added todo list for the addon --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 89646c1..4033b2b 100644 --- a/README.md +++ b/README.md @@ -79,5 +79,10 @@ Example }} ``` +##TODO + +1. Create a demo of the addon. +2. Write test cases supporting the addon. + ## Contribution Fork this repository, make a feature branch and send in a pull request. From 439125ce0549bf9d5809ff66334cdc8740374b55 Mon Sep 17 00:00:00 2001 From: santhoshRaju91 Date: Fri, 12 Jan 2018 13:11:49 +0530 Subject: [PATCH 3/3] Changed the index.js by adding _findHost hook, this addon can support ember-engine --- index.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/index.js b/index.js index aa71204..7890b0e 100644 --- a/index.js +++ b/index.js @@ -3,6 +3,18 @@ module.exports = { name: 'ember-cli-sortable', + + _findHost() { + let current = this; + let app; + + do { + app = current.app || app; + } while(current.parent.parent && (current = current.parent)); + + return app; + }, + included: function(app) { this._super.included(app);