From 92b02295b52737e9587add83187916a39e0c4b59 Mon Sep 17 00:00:00 2001 From: Clint Ryan Date: Sat, 11 Mar 2017 23:26:20 +1100 Subject: [PATCH 1/7] Issue 8432: Pre-test for initial fix --- website/client-old/js/controllers/userCtrl.js | 2 ++ website/common/script/content/loginIncentives.js | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/website/client-old/js/controllers/userCtrl.js b/website/client-old/js/controllers/userCtrl.js index 8044f6e0a4..679e3f101b 100644 --- a/website/client-old/js/controllers/userCtrl.js +++ b/website/client-old/js/controllers/userCtrl.js @@ -96,6 +96,8 @@ habitrpg.controller("UserCtrl", ['$rootScope', '$scope', '$location', 'User', '$ if (!currentLoginDay) return env.t('moreIncentivesComingSoon'); var nextRewardAt = currentLoginDay.nextRewardAt; if (!nextRewardAt) return env.t('moreIncentivesComingSoon'); + // if we are on a reward day, let's show progress relative to this + if (currentLoginDay.reward) currentLoginDay.prevRewardKey = $scope.profile.loginIncentives; if (!currentLoginDay.prevRewardKey) currentLoginDay.prevRewardKey = 0; return env.t('checkinProgressTitle') + ' ' + ($scope.profile.loginIncentives - currentLoginDay.prevRewardKey) + '/' + (nextRewardAt - currentLoginDay.prevRewardKey); }; diff --git a/website/common/script/content/loginIncentives.js b/website/common/script/content/loginIncentives.js index 10bd714174..c5ff8e6da7 100644 --- a/website/common/script/content/loginIncentives.js +++ b/website/common/script/content/loginIncentives.js @@ -226,7 +226,7 @@ module.exports = function getLoginIncentives (api) { }, }; - // Add refence link to next reward and add filler days so we have a map to refernce the next reward from any day + // Add reference link to next reward and add filler days so we have a map to reference the next reward from any day // We could also, use a list, but then we would be cloning each of the rewards. // Create a new array if we want the loginIncentives to be immutable in the future let nextRewardKey; From 83bd4dcf60e8955e5dc2008a9a012aa49df382cf Mon Sep 17 00:00:00 2001 From: Clint Ryan Date: Tue, 14 Mar 2017 12:35:48 +1100 Subject: [PATCH 2/7] Add failing test, seeking help/advice --- .../spec/controllers/userCtrlSpec.js | 37 +++++++++++++++++++ website/client-old/js/controllers/userCtrl.js | 2 +- 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 test/client-old/spec/controllers/userCtrlSpec.js diff --git a/test/client-old/spec/controllers/userCtrlSpec.js b/test/client-old/spec/controllers/userCtrlSpec.js new file mode 100644 index 0000000000..54be4a43ec --- /dev/null +++ b/test/client-old/spec/controllers/userCtrlSpec.js @@ -0,0 +1,37 @@ +'use strict'; + +describe('User Controller', function() { + var $rootScope, shared, scope, user, User, ctrl, content; + + beforeEach(function() { + user = specHelper.newUser(); + User = { + user: user + }; + + module(function($provide) { + $provide.value('User', User); + $provide.value('Guide', {}); + }); + + inject(function($rootScope, $controller, Shared, Content){ + scope = $rootScope.$new(); + Shared.wrap(user); + shared = Shared; + content = Content + $controller('RootCtrl', {$scope: scope, User: User, Shared: Shared}); + ctrl = $controller('UserCtrl', {$scope: scope, User: User}); + }); + }); + + describe.only('getProgressDisplay', function() { + it('should return initial progress', function() { + sinon.stub(content, 'loginIncentives').onFirstCall().returns({ + prevRewardKey: 0, + nextRewardKey: 1 + }); + var actual = scope.getProgressDisplay(); + expect(actual).to.eql(''); + }); + }); +}); diff --git a/website/client-old/js/controllers/userCtrl.js b/website/client-old/js/controllers/userCtrl.js index 679e3f101b..b13a941eff 100644 --- a/website/client-old/js/controllers/userCtrl.js +++ b/website/client-old/js/controllers/userCtrl.js @@ -1,6 +1,6 @@ "use strict"; -habitrpg.controller("UserCtrl", ['$rootScope', '$scope', '$location', 'User', '$http', '$state', 'Guide', 'Shared', 'Content', 'Stats', 'Social', 'Costume', +habitrpg.controller('UserCtrl', ['$rootScope', '$scope', '$location', 'User', '$http', '$state', 'Guide', 'Shared', 'Content', 'Stats', 'Social', 'Costume', function($rootScope, $scope, $location, User, $http, $state, Guide, Shared, Content, Stats, Social, Costume) { $scope.profile = User.user; From 9115be68b2832a14ee81989e4a2151268271a9a9 Mon Sep 17 00:00:00 2001 From: Clint Ryan Date: Sun, 19 Mar 2017 10:11:11 +1100 Subject: [PATCH 3/7] Fixes achievements injection. Now trying with Guide --- .../spec/controllers/userCtrlSpec.js | 42 +++++++++++++------ 1 file changed, 30 insertions(+), 12 deletions(-) diff --git a/test/client-old/spec/controllers/userCtrlSpec.js b/test/client-old/spec/controllers/userCtrlSpec.js index 54be4a43ec..2bba860704 100644 --- a/test/client-old/spec/controllers/userCtrlSpec.js +++ b/test/client-old/spec/controllers/userCtrlSpec.js @@ -1,26 +1,44 @@ 'use strict'; -describe('User Controller', function() { - var $rootScope, shared, scope, user, User, ctrl, content; +describe.only('User Controller', function() { + var $rootScope, shared, scope, user, User, ctrl, content, achievement; beforeEach(function() { - user = specHelper.newUser(); + user = specHelper.newUser({ + balance: 4, + items: { + gear: { owned: {} }, + eggs: { Cactus: 1 }, + hatchingPotions: { Base: 1 }, + food: { Meat: 1 }, + pets: {}, + mounts: {} + }, + flags: { + armoireEnabled: true + }, + preferences: { + suppressModals: {} + }, + purchased: { + plan: { + mysteryItems: [], + }, + }, + }); + User = { user: user }; - module(function($provide) { - $provide.value('User', User); - $provide.value('Guide', {}); - }); - - inject(function($rootScope, $controller, Shared, Content){ + inject(function($rootScope, $controller, Shared, User, Achievement, Guide) { scope = $rootScope.$new(); Shared.wrap(user); shared = Shared; - content = Content - $controller('RootCtrl', {$scope: scope, User: User, Shared: Shared}); - ctrl = $controller('UserCtrl', {$scope: scope, User: User}); + achievement = Achievement; + User.setUser(user); + $controller('RootCtrl', {$scope: scope, User: User, Guide: Guide}); + ctrl = $controller('UserCtrl', {$scope: scope, User: User, Guide: Guide}); }); }); From 7a543d07a4c0003f746d458baa4069c2ea90d96f Mon Sep 17 00:00:00 2001 From: Clint Ryan Date: Thu, 23 Mar 2017 00:41:28 +1100 Subject: [PATCH 4/7] Fixes tests --- .../spec/controllers/userCtrlSpec.js | 91 +++++++++++-------- website/client-old/js/controllers/userCtrl.js | 1 + 2 files changed, 54 insertions(+), 38 deletions(-) diff --git a/test/client-old/spec/controllers/userCtrlSpec.js b/test/client-old/spec/controllers/userCtrlSpec.js index 2bba860704..8db58196ef 100644 --- a/test/client-old/spec/controllers/userCtrlSpec.js +++ b/test/client-old/spec/controllers/userCtrlSpec.js @@ -1,55 +1,70 @@ 'use strict'; describe.only('User Controller', function() { - var $rootScope, shared, scope, user, User, ctrl, content, achievement; + var $rootScope, $window, User, shared, scope, ctrl, content; beforeEach(function() { - user = specHelper.newUser({ - balance: 4, - items: { - gear: { owned: {} }, - eggs: { Cactus: 1 }, - hatchingPotions: { Base: 1 }, - food: { Meat: 1 }, - pets: {}, - mounts: {} - }, - flags: { - armoireEnabled: true - }, - preferences: { - suppressModals: {} - }, - purchased: { - plan: { - mysteryItems: [], + module(function ($provide) { + var user = specHelper.newUser(); + User = {user: user} + $provide.value('Guide', sandbox.stub()); + $provide.value('User', User); + $provide.value('Achievement', sandbox.stub()); + $provide.value('Social', sandbox.stub()); + $provide.value('Shared', { + achievements: { + getAchievementsForProfile: sandbox.stub() }, - }, + shops: { + getBackgroundShopSets: sandbox.stub() + } + }); + $provide.value('Content', { + loginIncentives: sandbox.stub() + }) }); - User = { - user: user - }; - - inject(function($rootScope, $controller, Shared, User, Achievement, Guide) { + inject(function($rootScope, $controller, User, Content) { scope = $rootScope.$new(); - Shared.wrap(user); - shared = Shared; - achievement = Achievement; - User.setUser(user); - $controller('RootCtrl', {$scope: scope, User: User, Guide: Guide}); - ctrl = $controller('UserCtrl', {$scope: scope, User: User, Guide: Guide}); + content = Content; + $window = { + env: { + t: sandbox.stub(), + }, + }; + $controller('RootCtrl', { $scope: scope, $window: $window, User: User}); + ctrl = $controller('UserCtrl', { $scope: scope, User: User, $window: $window}); }); }); - describe.only('getProgressDisplay', function() { + describe('getProgressDisplay', function() { it('should return initial progress', function() { - sinon.stub(content, 'loginIncentives').onFirstCall().returns({ - prevRewardKey: 0, - nextRewardKey: 1 - }); + $window.env.t.onFirstCall().returns(''); + scope.profile.loginIncentives = 0; + content.loginIncentives = [{ + nextRewardAt: 1, + reward: true + }]; var actual = scope.getProgressDisplay(); - expect(actual).to.eql(''); + expect(actual.trim()).to.eql('0/1'); + }); + + it('should return progress between next reward and current reward', function() { + $window.env.t.onFirstCall().returns(''); + scope.profile.loginIncentives = 1; + content.loginIncentives = [{ + nextRewardAt: 1, + reward: true + }, { + prevRewardAt: 0, + nextRewardAt: 2, + reward: true + }, { + prevRewardAt: 1, + nextRewardAt: 3 + }]; + var actual = scope.getProgressDisplay(); + expect(actual.trim()).to.eql('0/1'); }); }); }); diff --git a/website/client-old/js/controllers/userCtrl.js b/website/client-old/js/controllers/userCtrl.js index b13a941eff..3d8ca62bf2 100644 --- a/website/client-old/js/controllers/userCtrl.js +++ b/website/client-old/js/controllers/userCtrl.js @@ -93,6 +93,7 @@ habitrpg.controller('UserCtrl', ['$rootScope', '$scope', '$location', 'User', '$ $scope.getProgressDisplay = function () { var currentLoginDay = Content.loginIncentives[$scope.profile.loginIncentives]; + console.log('CURRENT DAY', currentLoginDay); if (!currentLoginDay) return env.t('moreIncentivesComingSoon'); var nextRewardAt = currentLoginDay.nextRewardAt; if (!nextRewardAt) return env.t('moreIncentivesComingSoon'); From b48be4e61934750a2785174ff8580e85e4f82dd6 Mon Sep 17 00:00:00 2001 From: Clint Ryan Date: Thu, 23 Mar 2017 00:43:59 +1100 Subject: [PATCH 5/7] Remoed logging --- website/client-old/js/controllers/userCtrl.js | 1 - 1 file changed, 1 deletion(-) diff --git a/website/client-old/js/controllers/userCtrl.js b/website/client-old/js/controllers/userCtrl.js index 3d8ca62bf2..b13a941eff 100644 --- a/website/client-old/js/controllers/userCtrl.js +++ b/website/client-old/js/controllers/userCtrl.js @@ -93,7 +93,6 @@ habitrpg.controller('UserCtrl', ['$rootScope', '$scope', '$location', 'User', '$ $scope.getProgressDisplay = function () { var currentLoginDay = Content.loginIncentives[$scope.profile.loginIncentives]; - console.log('CURRENT DAY', currentLoginDay); if (!currentLoginDay) return env.t('moreIncentivesComingSoon'); var nextRewardAt = currentLoginDay.nextRewardAt; if (!nextRewardAt) return env.t('moreIncentivesComingSoon'); From cc68abb67ed58767fe6fc4ed8bb633ab0954a1b7 Mon Sep 17 00:00:00 2001 From: Clint Ryan Date: Fri, 24 Mar 2017 00:36:05 +1100 Subject: [PATCH 6/7] Mock ENV function --- .../spec/controllers/userCtrlSpec.js | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/test/client-old/spec/controllers/userCtrlSpec.js b/test/client-old/spec/controllers/userCtrlSpec.js index 8db58196ef..84e14157d7 100644 --- a/test/client-old/spec/controllers/userCtrlSpec.js +++ b/test/client-old/spec/controllers/userCtrlSpec.js @@ -27,30 +27,29 @@ describe.only('User Controller', function() { inject(function($rootScope, $controller, User, Content) { scope = $rootScope.$new(); content = Content; - $window = { - env: { - t: sandbox.stub(), - }, - }; - $controller('RootCtrl', { $scope: scope, $window: $window, User: User}); + $controller('RootCtrl', { $scope: scope, User: User}); ctrl = $controller('UserCtrl', { $scope: scope, User: User, $window: $window}); }); }); describe('getProgressDisplay', function() { + + beforeEach(() => { + sandbox.stub(window.env, 't'); + window.env.t.onFirstCall().returns('Progress until next'); + }); + it('should return initial progress', function() { - $window.env.t.onFirstCall().returns(''); scope.profile.loginIncentives = 0; content.loginIncentives = [{ nextRewardAt: 1, reward: true }]; var actual = scope.getProgressDisplay(); - expect(actual.trim()).to.eql('0/1'); + expect(actual.trim()).to.eql('Progress until next 0/1'); }); it('should return progress between next reward and current reward', function() { - $window.env.t.onFirstCall().returns(''); scope.profile.loginIncentives = 1; content.loginIncentives = [{ nextRewardAt: 1, @@ -64,7 +63,7 @@ describe.only('User Controller', function() { nextRewardAt: 3 }]; var actual = scope.getProgressDisplay(); - expect(actual.trim()).to.eql('0/1'); + expect(actual.trim()).to.eql('Progress until next 0/1'); }); }); }); From 6956f5345ef00a2270dbabf19296c646eadbcdda Mon Sep 17 00:00:00 2001 From: Clint Ryan Date: Fri, 24 Mar 2017 23:45:56 +1100 Subject: [PATCH 7/7] Removes test focus --- test/client-old/spec/controllers/userCtrlSpec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/client-old/spec/controllers/userCtrlSpec.js b/test/client-old/spec/controllers/userCtrlSpec.js index 84e14157d7..2ac2dbe8e1 100644 --- a/test/client-old/spec/controllers/userCtrlSpec.js +++ b/test/client-old/spec/controllers/userCtrlSpec.js @@ -1,6 +1,6 @@ 'use strict'; -describe.only('User Controller', function() { +describe('User Controller', function() { var $rootScope, $window, User, shared, scope, ctrl, content; beforeEach(function() {