From 64dfaec6a29053c67a0b9e443b4bf8595f92c825 Mon Sep 17 00:00:00 2001 From: Mike North Date: Thu, 21 May 2015 16:00:45 -0700 Subject: [PATCH] A better dummy app to demonstrate what this addon can do. Suitable for deploying on github pages --- bower.json | 3 +- package.json | 6 ++- .../infinity-route-with-meta-test.js | 2 +- .../infinity-route-without-meta-test.js | 2 +- tests/dummy/app/router.js | 3 +- tests/dummy/app/routes/demo.js | 44 ++++++++++++++++++ tests/dummy/app/styles/app.css | 45 ++++++++++++++++++- tests/dummy/app/templates/application.hbs | 2 - tests/dummy/app/templates/category.hbs | 2 +- tests/dummy/app/templates/demo.hbs | 16 +++++++ tests/dummy/app/templates/home.hbs | 2 +- tests/dummy/config/environment.js | 4 +- 12 files changed, 118 insertions(+), 13 deletions(-) create mode 100644 tests/dummy/app/routes/demo.js create mode 100644 tests/dummy/app/templates/demo.hbs diff --git a/bower.json b/bower.json index 5a4ecd29..fe9f7854 100644 --- a/bower.json +++ b/bower.json @@ -12,6 +12,7 @@ "jquery": "^1.11.1", "loader.js": "ember-cli/loader.js#3.2.0", "pretender": "0.6.0", - "qunit": "~1.17.1" + "qunit": "~1.17.1", + "Faker": "~2.1.3" } } diff --git a/package.json b/package.json index 9c499082..273aee61 100644 --- a/package.json +++ b/package.json @@ -23,16 +23,18 @@ "ember-cli-app-version": "0.3.3", "ember-cli-content-security-policy": "0.4.0", "ember-cli-dependency-checker": "^1.0.0", + "ember-cli-github-pages": "~0.0.4", "ember-cli-ic-ajax": "0.1.1", "ember-cli-inject-live-reload": "^1.3.0", "ember-cli-pretender": "0.3.2", "ember-cli-qunit": "0.3.13", - "ember-cli-version-checker": "^1.0.2", "ember-cli-uglify": "^1.0.1", + "ember-cli-version-checker": "^1.0.2", "ember-data": "1.0.0-beta.17", + "ember-disable-prototype-extensions": "^1.0.0", "ember-disable-proxy-controllers": "^0.7.0", "ember-export-application-global": "^1.0.2", - "ember-disable-prototype-extensions": "^1.0.0", + "ember-faker": "1.1.0", "ember-try": "0.0.5" }, "keywords": [ diff --git a/tests/acceptance/infinity-route-with-meta-test.js b/tests/acceptance/infinity-route-with-meta-test.js index e92076c5..0f35c184 100644 --- a/tests/acceptance/infinity-route-with-meta-test.js +++ b/tests/acceptance/infinity-route-with-meta-test.js @@ -48,7 +48,7 @@ module('Acceptance: Infinity Route', { }); test('it works when meta is present in payload', assert => { - visit('/'); + visit('/test'); andThen(() => { var postsTitle = find('#posts-title'); diff --git a/tests/acceptance/infinity-route-without-meta-test.js b/tests/acceptance/infinity-route-without-meta-test.js index 575ae455..91e68ad3 100644 --- a/tests/acceptance/infinity-route-without-meta-test.js +++ b/tests/acceptance/infinity-route-without-meta-test.js @@ -25,7 +25,7 @@ module('Acceptance: Infinity Route', { }); test('it works when meta is not present in payload', assert => { - visit('/'); + visit('/test'); andThen(() => { var postsTitle = find('#posts-title'); diff --git a/tests/dummy/app/router.js b/tests/dummy/app/router.js index ce83027e..e983f81f 100644 --- a/tests/dummy/app/router.js +++ b/tests/dummy/app/router.js @@ -6,7 +6,8 @@ var Router = Ember.Router.extend({ }); Router.map(function() { - this.route('home', { path: '/' }); + this.route('demo', {path: '/'}); + this.route('home', { path: 'test' }); this.route('category', { path: '/category/:category' }); }); diff --git a/tests/dummy/app/routes/demo.js b/tests/dummy/app/routes/demo.js new file mode 100644 index 00000000..380c8ba2 --- /dev/null +++ b/tests/dummy/app/routes/demo.js @@ -0,0 +1,44 @@ +import Ember from 'ember'; +import InfinityRoute from 'ember-infinity/mixins/route'; +import Pretender from 'pretender'; +import faker from 'faker'; + + +function generateFakeData(qty) { + var data = []; + for (var i = 0; i < qty; i++) { + data.push({id: i, name: faker.company.companyName()}); + } + return data; +} + + +export default Ember.Route.extend(InfinityRoute, { + init: function () { + this._super(...arguments); + var fakeData = generateFakeData(104); + this.set('pretender', new Pretender()); + this.get('pretender').get('/posts', request => { + var queryParams = request.queryParams; + var fd = fakeData; + var page = parseInt(request.queryParams.page, 10); + var per = parseInt(request.queryParams.per_page, 10); + var payload = { + posts: fd.slice((page - 1) * per, Math.min((page) * per, fd.length)), + meta: { + total_pages: Math.ceil(fd.length/per) + } + }; + return [200, {}, JSON.stringify(payload)]; + + }, 500 /*ms*/); + }, + + tearDownPretender: Ember.observer('deactivate', function () { + this.set('pretender', undefined); + }), + + model() { + return this.infinityModel('post'); + } +}); diff --git a/tests/dummy/app/styles/app.css b/tests/dummy/app/styles/app.css index 6d934965..2a0ad104 100644 --- a/tests/dummy/app/styles/app.css +++ b/tests/dummy/app/styles/app.css @@ -1,3 +1,46 @@ -ul li { +body { + font-family: 'Arial'; + padding: 0; + margin: 0; + width: 100%; +} +.demo-view { + margin-top: 160px; +} + +.test-list li { height: 500px; } + +.text-center { + text-align: center; +} + +.fixed-to-top { + position: fixed; + top: 0; + left: 0; + right: 0; +} + + +.jumbo-header { + color: #fff; + background: purple; + font-size: 36px; + width: 100%; + height: 150px; + box-shadow: 0 15px 15px rgba(0,0,0,0.5); +} + +.demo-items { + list-style: none; +} +.demo-items li { + border: 1px solid #999; + margin: 10px; + background: #fff; + box-shadow: 0 0 3px rgba(0,0,0,0.5); + padding: 10px; + width: 90%; +} diff --git a/tests/dummy/app/templates/application.hbs b/tests/dummy/app/templates/application.hbs index 05eb936c..c24cd689 100644 --- a/tests/dummy/app/templates/application.hbs +++ b/tests/dummy/app/templates/application.hbs @@ -1,3 +1 @@ -

Welcome to Ember.js

- {{outlet}} diff --git a/tests/dummy/app/templates/category.hbs b/tests/dummy/app/templates/category.hbs index 8c9657aa..6b4dcb21 100644 --- a/tests/dummy/app/templates/category.hbs +++ b/tests/dummy/app/templates/category.hbs @@ -1,6 +1,6 @@

Listing Posts using Parameters

-