'use strict'; const assert = require('./../../assert'); const common = require('./../../common'); let battle; describe('Haze - RBY', function () { afterEach(function () { battle.destroy(); }); it('should remove stat changes', function () { battle = common.gen(1).createBattle([ [{species: "Mew", moves: ['agility', 'haze']}], [{species: "Mewtwo", moves: ['swordsdance', 'splash']}], ]); battle.makeChoices('move agility', 'move swordsdance'); assert.equal(battle.p1.active[0].boosts.spe, 2); assert.equal(battle.p2.active[0].boosts.atk, 2); battle.makeChoices('move haze', 'move splash'); assert.equal(battle.p1.active[0].boosts.spe, 0); assert.equal(battle.p2.active[0].boosts.atk, 0); }); it('should remove opponent\'s status', function () { battle = common.gen(1).createBattle([ [{species: "Mew", moves: ['thunderwave', 'haze']}], [{species: "Mewtwo", moves: ['splash']}], ]); battle.makeChoices('move thunderwave', 'move splash'); assert.equal(battle.p2.active[0].status, 'par'); battle.makeChoices('move haze', 'move splash'); assert.notEqual(battle.p2.active[0].status, 'par'); }); it('should not remove user\'s status', function () { battle = common.gen(1).createBattle([ [{species: "Mew", moves: ['thunderwave']}], [{species: "Mewtwo", moves: ['haze']}], ]); battle.makeChoices('move thunderwave', 'move haze'); assert.equal(battle.p2.active[0].status, 'par'); battle.makeChoices('move thunderwave', 'move haze'); assert.equal(battle.p2.active[0].status, 'par'); }); it('should remove focus energy', function () { battle = common.gen(1).createBattle([ [{species: "Mew", moves: ['splash']}], [{species: "Mewtwo", moves: ['focusenergy', 'haze']}], ]); battle.makeChoices('move splash', 'move focusenergy'); assert(battle.p2.active[0].volatiles['focusenergy']); battle.makeChoices('move splash', 'move haze'); assert.equal(typeof battle.p2.active[0].volatiles['focusenergy'], 'undefined'); }); it('should remove reflect and light screen', function () { battle = common.gen(1).createBattle([ [{species: "Mew", moves: ['reflect', 'lightscreen', 'haze']}], [{species: "Mewtwo", moves: ['splash']}], ]); battle.makeChoices('move reflect', 'move splash'); assert(battle.p1.active[0].volatiles['reflect']); battle.makeChoices('move lightscreen', 'move splash'); assert(battle.p1.active[0].volatiles['lightscreen']); battle.makeChoices('move haze', 'move splash'); assert.equal(typeof battle.p1.active[0].volatiles['reflect'], 'undefined'); assert.equal(typeof battle.p1.active[0].volatiles['lightscreen'], 'undefined'); }); });