7df10d51b0
* Issue 8432: Pre-test for initial fix * Add failing test, seeking help/advice * Fixes achievements injection. Now trying with Guide * Fixes tests * Remoed logging * Mock ENV function * Removes test focus * Remove Beat Master unlock for Rebirth * Special message when complete all check-in prizes * Updated comment * fix(test): unpend party cap test * remove wrong subscriptions from gift modal * edit the new issue template to emphasise that the Report a Bug guild should be used first (#8659) * fix(translation): resolve merge conflict * fix(news): merge conflict * Added email invite limit (#8664) * Added email invite limit * change error message for sending too many invitations to instruct them to email us * fix test error message to use variable in locales string * add comment to warn about keeping INVITES_LIMIT low If INVITES_LIMIT is allowed to be greater than MAX_EMAIL_INVITES_BY_USER then the inviter can send more than MAX_EMAIL_INVITES_BY_USER invitations at once. * Fix for automatic allocation not persisting #8641 (#8661) * Fixed text of check-in prize when it is a set of backgrounds (#8599) * Fixed text of check-in prize when it is a set of backgrounds * Use existing i18n string for BGs name * Added user.preferences.language as second parameter * fix Shiny Seeds info about achievement (not given to caster) (#8679) Ref: https://habitica.slack.com/archives/C02RK7DKF/p1492032261365388 * Release mergeback v3.86.0 (#8685) * 3.85.0 * New User Tasks for Mobile (#8682) * feat(mobile): different default tasks * fix(linting): missing space * fix(user): correct client type logic * test(integration): tasks by platform * fix(test): remove only * test(user): deeper checks on tasks * refactor(test): whitespace for readability * feat(subs): Jackalope Pets (#8684) * chore(sprites): compile * chore(i18n): update locales * 3.86.0
70 lines
1.9 KiB
JavaScript
70 lines
1.9 KiB
JavaScript
'use strict';
|
|
|
|
describe('User Controller', function() {
|
|
var $rootScope, $window, User, shared, scope, ctrl, content;
|
|
|
|
beforeEach(function() {
|
|
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()
|
|
})
|
|
});
|
|
|
|
inject(function($rootScope, $controller, User, Content) {
|
|
scope = $rootScope.$new();
|
|
content = Content;
|
|
$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() {
|
|
scope.profile.loginIncentives = 0;
|
|
content.loginIncentives = [{
|
|
nextRewardAt: 1,
|
|
reward: true
|
|
}];
|
|
var actual = scope.getProgressDisplay();
|
|
expect(actual.trim()).to.eql('Progress until next 0/1');
|
|
});
|
|
|
|
it('should return progress between next reward and current reward', function() {
|
|
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('Progress until next 0/1');
|
|
});
|
|
});
|
|
});
|