|
@@ -2,6 +2,7 @@ import Ember from 'ember';
|
|
import { module, test } from 'qunit';
|
|
import { module, test } from 'qunit';
|
|
import startApp from '../helpers/start-app';
|
|
import startApp from '../helpers/start-app';
|
|
import createUser from '../helpers/create-user';
|
|
import createUser from '../helpers/create-user';
|
|
|
|
+import { updateObjProps, paginatedJSON, rankJSON, userJSON } from '../helpers/api-mocks';
|
|
|
|
|
|
var application, container, auth;
|
|
var application, container, auth;
|
|
|
|
|
|
@@ -25,31 +26,337 @@ test('pagination redirects from explicit first page', function(assert) {
|
|
'user': user
|
|
'user': user
|
|
});
|
|
});
|
|
|
|
|
|
|
|
+ var rank = rankJSON(3, {
|
|
|
|
+ 'name': 'Test Rank',
|
|
|
|
+ 'slug': 'test-rank',
|
|
|
|
+ 'is_tab': true
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ Ember.$.mockjax({
|
|
|
|
+ url: '/api/ranks/',
|
|
|
|
+ status: 200,
|
|
|
|
+ responseText: [rank]
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ var users = [];
|
|
|
|
+ for (var i = 1; i <= 20; i++) {
|
|
|
|
+ users.push(userJSON(i, { 'rank': rank }));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ var resultsJSON = paginatedJSON(users, 20, 2, 10, 5);
|
|
|
|
+ resultsJSON.users = 10;
|
|
|
|
+
|
|
|
|
+ Ember.$.mockjax({
|
|
|
|
+ url: '/api/users/',
|
|
|
|
+ data: {
|
|
|
|
+ 'list': 'rank',
|
|
|
|
+ 'rank': 'test-rank'
|
|
|
|
+ },
|
|
|
|
+ status: 200,
|
|
|
|
+ responseText: resultsJSON
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ assert.expect(1);
|
|
|
|
+
|
|
|
|
+ visit('/users/test-rank/1/');
|
|
|
|
+
|
|
|
|
+ andThen(function() {
|
|
|
|
+ assert.equal(currentPath(), 'users.rank.index');
|
|
|
|
+ });
|
|
|
|
+});
|
|
|
|
+
|
|
|
|
+test('pagination displays next page', function(assert) {
|
|
|
|
+ var user = createUser();
|
|
|
|
+ auth.setProperties({
|
|
|
|
+ 'isAuthenticated': true,
|
|
|
|
+ 'user': user
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ var rank = rankJSON(3, {
|
|
|
|
+ 'name': 'Test Rank',
|
|
|
|
+ 'slug': 'test-rank',
|
|
|
|
+ 'is_tab': true
|
|
|
|
+ });
|
|
|
|
+
|
|
Ember.$.mockjax({
|
|
Ember.$.mockjax({
|
|
url: '/api/ranks/',
|
|
url: '/api/ranks/',
|
|
status: 200,
|
|
status: 200,
|
|
- responseText: [{
|
|
|
|
- 'id': 3,
|
|
|
|
- 'name': 'Test Rank',
|
|
|
|
- 'slug': 'test-rank',
|
|
|
|
- 'description': '',
|
|
|
|
- 'css_class': '',
|
|
|
|
- 'is_tab': true
|
|
|
|
- }]
|
|
|
|
|
|
+ responseText: [rank]
|
|
});
|
|
});
|
|
|
|
|
|
|
|
+ var users = [];
|
|
|
|
+ for (var i = 1; i <= 20; i++) {
|
|
|
|
+ users.push(userJSON(i, { 'rank': rank }));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ var resultsJSON = paginatedJSON(users, 20, 2, 10, 5);
|
|
|
|
+ resultsJSON.users = 10;
|
|
|
|
+
|
|
Ember.$.mockjax({
|
|
Ember.$.mockjax({
|
|
- url: '/api/users/?list=rank&rank=test-rank',
|
|
|
|
|
|
+ url: '/api/users/',
|
|
|
|
+ data: {
|
|
|
|
+ 'list': 'rank',
|
|
|
|
+ 'rank': 'test-rank',
|
|
|
|
+ 'page': 2,
|
|
|
|
+ },
|
|
status: 200,
|
|
status: 200,
|
|
- responseText: []
|
|
|
|
|
|
+ responseText: resultsJSON
|
|
});
|
|
});
|
|
|
|
|
|
assert.expect(1);
|
|
assert.expect(1);
|
|
|
|
|
|
- visit('/users/');
|
|
|
|
|
|
+ visit('/users/test-rank/2/');
|
|
|
|
+
|
|
|
|
+ andThen(function() {
|
|
|
|
+ assert.equal(currentPath(), 'users.rank.page');
|
|
|
|
+ });
|
|
|
|
+});
|
|
|
|
+
|
|
|
|
+test('pagination go to next page', function(assert) {
|
|
|
|
+ var user = createUser();
|
|
|
|
+ auth.setProperties({
|
|
|
|
+ 'isAuthenticated': true,
|
|
|
|
+ 'user': user
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ var rank = rankJSON(3, {
|
|
|
|
+ 'name': 'Test Rank',
|
|
|
|
+ 'slug': 'test-rank',
|
|
|
|
+ 'is_tab': true
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ Ember.$.mockjax({
|
|
|
|
+ url: '/api/ranks/',
|
|
|
|
+ status: 200,
|
|
|
|
+ responseText: [rank]
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ var users = [];
|
|
|
|
+ for (var i = 1; i <= 20; i++) {
|
|
|
|
+ users.push(userJSON(i, { 'rank': rank }));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ var resultsJSON = paginatedJSON(users, 20, 2, 6, 2);
|
|
|
|
+ resultsJSON.users = 10;
|
|
|
|
+
|
|
|
|
+ Ember.$.mockjax({
|
|
|
|
+ url: '/api/users/',
|
|
|
|
+ data: {
|
|
|
|
+ 'list': 'rank',
|
|
|
|
+ 'rank': 'test-rank',
|
|
|
|
+ 'page': 2
|
|
|
|
+ },
|
|
|
|
+ status: 200,
|
|
|
|
+ responseText: resultsJSON
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ resultsJSON = paginatedJSON(users, 20, 1, 6, 2);
|
|
|
|
+ resultsJSON.users = 10;
|
|
|
|
+
|
|
|
|
+ Ember.$.mockjax({
|
|
|
|
+ url: '/api/users/',
|
|
|
|
+ data: {
|
|
|
|
+ 'list': 'rank',
|
|
|
|
+ 'rank': 'test-rank'
|
|
|
|
+ },
|
|
|
|
+ status: 200,
|
|
|
|
+ responseText: resultsJSON
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ assert.expect(2);
|
|
|
|
+
|
|
|
|
+ visit('/users/test-rank/');
|
|
|
|
+ click('.pager-aligned .btn-next-page:last');
|
|
|
|
+
|
|
|
|
+ andThen(function() {
|
|
|
|
+ assert.equal(currentURL(), '/users/test-rank/2');
|
|
|
|
+ assert.equal(currentPath(), 'users.rank.page');
|
|
|
|
+ });
|
|
|
|
+});
|
|
|
|
+
|
|
|
|
+test('pagination go to last page', function(assert) {
|
|
|
|
+ var user = createUser();
|
|
|
|
+ auth.setProperties({
|
|
|
|
+ 'isAuthenticated': true,
|
|
|
|
+ 'user': user
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ var rank = rankJSON(3, {
|
|
|
|
+ 'name': 'Test Rank',
|
|
|
|
+ 'slug': 'test-rank',
|
|
|
|
+ 'is_tab': true
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ Ember.$.mockjax({
|
|
|
|
+ url: '/api/ranks/',
|
|
|
|
+ status: 200,
|
|
|
|
+ responseText: [rank]
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ var users = [];
|
|
|
|
+ for (var i = 1; i <= 20; i++) {
|
|
|
|
+ users.push(userJSON(i, { 'rank': rank }));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ var resultsJSON = paginatedJSON(users, 20, 3, 6, 2);
|
|
|
|
+ resultsJSON.users = 10;
|
|
|
|
+
|
|
|
|
+ Ember.$.mockjax({
|
|
|
|
+ url: '/api/users/',
|
|
|
|
+ data: {
|
|
|
|
+ 'list': 'rank',
|
|
|
|
+ 'rank': 'test-rank',
|
|
|
|
+ 'page': 3
|
|
|
|
+ },
|
|
|
|
+ status: 200,
|
|
|
|
+ responseText: resultsJSON
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ resultsJSON = paginatedJSON(users, 20, 1, 6, 2);
|
|
|
|
+ resultsJSON.users = 10;
|
|
|
|
+
|
|
|
|
+ Ember.$.mockjax({
|
|
|
|
+ url: '/api/users/',
|
|
|
|
+ data: {
|
|
|
|
+ 'list': 'rank',
|
|
|
|
+ 'rank': 'test-rank'
|
|
|
|
+ },
|
|
|
|
+ status: 200,
|
|
|
|
+ responseText: resultsJSON
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ assert.expect(2);
|
|
|
|
+
|
|
|
|
+ visit('/users/test-rank/');
|
|
|
|
+ click('.pager-aligned .btn-last-page');
|
|
|
|
+
|
|
|
|
+ andThen(function() {
|
|
|
|
+ assert.equal(currentURL(), '/users/test-rank/3');
|
|
|
|
+ assert.equal(currentPath(), 'users.rank.page');
|
|
|
|
+ });
|
|
|
|
+});
|
|
|
|
+
|
|
|
|
+test('pagination go to previous page', function(assert) {
|
|
|
|
+ var user = createUser();
|
|
|
|
+ auth.setProperties({
|
|
|
|
+ 'isAuthenticated': true,
|
|
|
|
+ 'user': user
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ var rank = rankJSON(3, {
|
|
|
|
+ 'name': 'Test Rank',
|
|
|
|
+ 'slug': 'test-rank',
|
|
|
|
+ 'is_tab': true
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ Ember.$.mockjax({
|
|
|
|
+ url: '/api/ranks/',
|
|
|
|
+ status: 200,
|
|
|
|
+ responseText: [rank]
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ var users = [];
|
|
|
|
+ for (var i = 1; i <= 20; i++) {
|
|
|
|
+ users.push(userJSON(i, { 'rank': rank }));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ var resultsJSON = paginatedJSON(users, 20, 2, 6, 2);
|
|
|
|
+ resultsJSON.users = 10;
|
|
|
|
+
|
|
|
|
+ Ember.$.mockjax({
|
|
|
|
+ url: '/api/users/',
|
|
|
|
+ data: {
|
|
|
|
+ 'list': 'rank',
|
|
|
|
+ 'rank': 'test-rank',
|
|
|
|
+ 'page': 2
|
|
|
|
+ },
|
|
|
|
+ status: 200,
|
|
|
|
+ responseText: resultsJSON
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ resultsJSON = paginatedJSON(users, 20, 3, 6, 2);
|
|
|
|
+ resultsJSON.users = 10;
|
|
|
|
+
|
|
|
|
+ Ember.$.mockjax({
|
|
|
|
+ url: '/api/users/',
|
|
|
|
+ data: {
|
|
|
|
+ 'list': 'rank',
|
|
|
|
+ 'rank': 'test-rank',
|
|
|
|
+ 'page': 3
|
|
|
|
+ },
|
|
|
|
+ status: 200,
|
|
|
|
+ responseText: resultsJSON
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ assert.expect(2);
|
|
|
|
+
|
|
|
|
+ visit('/users/test-rank/3/');
|
|
|
|
+ click('.pager-aligned .btn-previous-page:last');
|
|
|
|
+
|
|
|
|
+ andThen(function() {
|
|
|
|
+ assert.equal(currentURL(), '/users/test-rank/2');
|
|
|
|
+ assert.equal(currentPath(), 'users.rank.page');
|
|
|
|
+ });
|
|
|
|
+});
|
|
|
|
+
|
|
|
|
+test('pagination go to first page', function(assert) {
|
|
|
|
+ var user = createUser();
|
|
|
|
+ auth.setProperties({
|
|
|
|
+ 'isAuthenticated': true,
|
|
|
|
+ 'user': user
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ var rank = rankJSON(3, {
|
|
|
|
+ 'name': 'Test Rank',
|
|
|
|
+ 'slug': 'test-rank',
|
|
|
|
+ 'is_tab': true
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ Ember.$.mockjax({
|
|
|
|
+ url: '/api/ranks/',
|
|
|
|
+ status: 200,
|
|
|
|
+ responseText: [rank]
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ var users = [];
|
|
|
|
+ for (var i = 1; i <= 20; i++) {
|
|
|
|
+ users.push(userJSON(i, { 'rank': rank }));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ var resultsJSON = paginatedJSON(users, 20, 3, 6, 2);
|
|
|
|
+ resultsJSON.users = 10;
|
|
|
|
+
|
|
|
|
+ Ember.$.mockjax({
|
|
|
|
+ url: '/api/users/',
|
|
|
|
+ data: {
|
|
|
|
+ 'list': 'rank',
|
|
|
|
+ 'rank': 'test-rank',
|
|
|
|
+ 'page': 3
|
|
|
|
+ },
|
|
|
|
+ status: 200,
|
|
|
|
+ responseText: resultsJSON
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ resultsJSON = paginatedJSON(users, 20, 1, 6, 2);
|
|
|
|
+ resultsJSON.users = 10;
|
|
|
|
+
|
|
|
|
+ Ember.$.mockjax({
|
|
|
|
+ url: '/api/users/',
|
|
|
|
+ data: {
|
|
|
|
+ 'list': 'rank',
|
|
|
|
+ 'rank': 'test-rank'
|
|
|
|
+ },
|
|
|
|
+ status: 200,
|
|
|
|
+ responseText: resultsJSON
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ assert.expect(2);
|
|
|
|
+
|
|
|
|
+ visit('/users/test-rank/3/');
|
|
|
|
+ click('.pager-aligned .btn-first-page');
|
|
|
|
|
|
andThen(function() {
|
|
andThen(function() {
|
|
- console.log(find('.nav-tabs').text())
|
|
|
|
|
|
+ assert.equal(currentURL(), '/users/test-rank');
|
|
assert.equal(currentPath(), 'users.rank.index');
|
|
assert.equal(currentPath(), 'users.rank.index');
|
|
});
|
|
});
|
|
});
|
|
});
|