mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-14 13:17:24 +01:00
* Added logic for a repeating Chilling Frost skill. Added test case for redundant chilling frost skill cast. Added comments for the logic of repeating Stealth skill because of an error. * Added logic for a repeating Stealth skill. Avoiding MP reduction still pending because of console error. Test cases pending. * Completed the logic for a repeated Stealth skill. Added repeated frost skill cast check in common. Removed exclusive test. Test cases are pending. * Added test case for Stealth skill recast. Fixed lint errors. Fixed a flaw in if statement which led to test case failure. * Fixed lint errors in test case. * Added a common JSON entry for skil recasts in three files. Other files remaining. Added Chilling Frost recast check in common code. Modified test cases. * Added spellDisabled condition in client code. * Reverted JSON messages for three languages. Added spellAlreadyCast attribute to JSON file in locales/en. Made changes for showing appropriate message in client code. * Added an import for throwing BadRequest in common code. Modified test case accordingly. * Update website/common/script/content/spells.js Co-authored-by: Matteo Pagliazzi <matteopagliazzi@gmail.com> * Added target and req attributes in cast() method arguments. * Changed common code test case because of increased function parameters. Moved chilling frost test casse to common tests instead of server tests. * Changed the test case format in common tests. * Added a missing done statement. * Fixed a minor error which led to failing test case. Removed the exclusive test which led to lint error. * Fixed lint errors. * Added a class named 'disabled' for the frontend change. * fix(skills): style cleanup * fix(skills): unfix Co-authored-by: Matteo Pagliazzi <matteopagliazzi@gmail.com> Co-authored-by: Sabe Jones <sabrecat@gmail.com>
58 lines
1.5 KiB
JavaScript
58 lines
1.5 KiB
JavaScript
import {
|
|
generateUser,
|
|
} from '../../helpers/common.helper';
|
|
import spells from '../../../website/common/script/content/spells';
|
|
import {
|
|
NotAuthorized,
|
|
BadRequest,
|
|
} from '../../../website/common/script/libs/errors';
|
|
import i18n from '../../../website/common/script/i18n';
|
|
|
|
// TODO complete the test suite...
|
|
|
|
describe('shared.ops.spells', () => {
|
|
let user;
|
|
|
|
beforeEach(() => {
|
|
user = generateUser();
|
|
});
|
|
|
|
it('returns an error when healer tries to cast Healing Light with full health', done => {
|
|
user.stats.class = 'healer';
|
|
user.stats.lvl = 11;
|
|
user.stats.hp = 50;
|
|
user.stats.mp = 200;
|
|
|
|
const spell = spells.healer.heal;
|
|
|
|
try {
|
|
spell.cast(user, null, { language: 'en' });
|
|
} catch (err) {
|
|
expect(err).to.be.an.instanceof(NotAuthorized);
|
|
expect(err.message).to.equal(i18n.t('messageHealthAlreadyMax'));
|
|
expect(user.stats.hp).to.eql(50);
|
|
expect(user.stats.mp).to.eql(200);
|
|
|
|
done();
|
|
}
|
|
});
|
|
|
|
it('Issue #12361: returns an error if chilling frost has already been cast', done => {
|
|
user.stats.class = 'wizard';
|
|
user.stats.lvl = 15;
|
|
user.stats.mp = 400;
|
|
user.stats.buffs.streaks = true;
|
|
|
|
const spell = spells.wizard.frost;
|
|
try {
|
|
spell.cast(user, null, { language: 'en' });
|
|
} catch (err) {
|
|
expect(err).to.be.an.instanceof(BadRequest);
|
|
expect(err.message).to.equal(i18n.t('spellAlreadyCast'));
|
|
expect(user.stats.mp).to.eql(400);
|
|
|
|
done();
|
|
}
|
|
});
|
|
});
|