55 lines
1.8 KiB
CoffeeScript
55 lines
1.8 KiB
CoffeeScript
|
require '../../helpers'
|
||
|
|
||
|
{BattleServer} = require('../../../server/server')
|
||
|
{User} = require('../../../server/user')
|
||
|
{Conditions} = require '../../../shared/conditions'
|
||
|
{Factory} = require '../../factory'
|
||
|
should = require('should')
|
||
|
|
||
|
generateTeam = ->
|
||
|
[ Factory("Magikarp")
|
||
|
Factory("Gyarados")
|
||
|
Factory('Hitmonchan')
|
||
|
Factory("Celebi")
|
||
|
Factory("Blissey")
|
||
|
Factory("Alakazam") ]
|
||
|
|
||
|
describe 'Validations: Evasion Clause', ->
|
||
|
it "returns an error if a pokemon has an evasion move", ->
|
||
|
server = new BattleServer()
|
||
|
format = 'xy1000'
|
||
|
team = generateTeam()
|
||
|
team[0] = Factory("Umbreon", moves: [ "Double Team" ])
|
||
|
conditions = [ Conditions.EVASION_CLAUSE ]
|
||
|
|
||
|
server.validateTeam(team, format, conditions).should.not.be.empty
|
||
|
|
||
|
it "returns an error if a pokemon has a banned evasion ability", ->
|
||
|
server = new BattleServer()
|
||
|
format = 'xy1000'
|
||
|
team = generateTeam()
|
||
|
team[0] = Factory("Smeargle", ability: "Moody", moves: [ "Sketch" ])
|
||
|
conditions = [ Conditions.EVASION_CLAUSE ]
|
||
|
|
||
|
server.validateTeam(team, format, conditions).should.not.be.empty
|
||
|
|
||
|
it "returns no error if no pokemon has an evasion move", ->
|
||
|
server = new BattleServer()
|
||
|
format = 'xy1000'
|
||
|
team = generateTeam()
|
||
|
team[0] = Factory("Magikarp", moves: [ "Splash" ])
|
||
|
team[1] = Factory("Gyarados", moves: [ "Dragon Dance" ])
|
||
|
conditions = [ Conditions.EVASION_CLAUSE ]
|
||
|
|
||
|
server.validateTeam(team, format, conditions).should.be.empty
|
||
|
|
||
|
it "ignores invalid moves", ->
|
||
|
server = new BattleServer()
|
||
|
format = 'xy1000'
|
||
|
team = generateTeam()
|
||
|
team[0] = Factory("Magikarp", moves: [ "GHOSTFACE KILLAH" ])
|
||
|
team[1] = Factory("Gyarados", moves: [ "Dragon Dance" ])
|
||
|
conditions = [ Conditions.EVASION_CLAUSE ]
|
||
|
|
||
|
(-> server.validateTeam(team, format, conditions)).should.not.throw()
|