BattleSim/test/server/conditions/unreleased_ban_spec.coffee

71 lines
2.4 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: Unreleased Ban', ->
it "returns an error if a pokemon is unreleased", ->
server = new BattleServer()
format = 'xy1000'
team = generateTeam()
team[0] = Factory("Hoopa", item: "Leftovers", moves: [ "Moonblast" ])
conditions = [ Conditions.UNRELEASED_BAN ]
server.validateTeam(team, format, conditions).should.not.be.empty
it "returns an error if a pokemon has an unreleased item", ->
server = new BattleServer()
format = 'xy1000'
team = generateTeam()
team[0] = Factory("Latias", item: "Soul Dew", moves: [ "Psychic" ])
conditions = [ Conditions.UNRELEASED_BAN ]
server.validateTeam(team, format, conditions).should.not.be.empty
it "returns an error if a pokemon has an unreleased ability", ->
server = new BattleServer()
format = 'xy1000'
team = generateTeam()
team[0] = Factory("Suicune", ability: "Water Absorb", moves: [ "Surf" ])
conditions = [ Conditions.UNRELEASED_BAN ]
server.validateTeam(team, format, conditions).should.not.be.empty
it "returns no error if all pokemon have nothing unreleased", ->
server = new BattleServer()
format = 'xy1000'
team = generateTeam()
team[0] = Factory("Latias", item: "Leftovers", moves: [ "Psychic" ])
conditions = [ Conditions.UNRELEASED_BAN ]
server.validateTeam(team, format, conditions).should.be.empty
it "returns no error if a pokemon has a dream world ability that is the same as a regular ability", ->
server = new BattleServer()
format = 'xy1000'
team = generateTeam()
team[0] = Factory("Metapod", ability: "Shed Skin", moves: [ "Tackle" ])
conditions = [ Conditions.UNRELEASED_BAN ]
server.validateTeam(team, format, conditions).should.be.empty
it "ignores invalid pokemon", ->
server = new BattleServer()
format = 'xy1000'
team = generateTeam()
team[0] = {species: "I'm a totally fake Pokemon."}
conditions = [ Conditions.UNRELEASED_BAN ]
(-> server.validateTeam(team, format, conditions)).should.not.throw()