100 lines
2.7 KiB
JavaScript
100 lines
2.7 KiB
JavaScript
|
import { expect } from 'chai'
|
||
|
import sinon from 'sinon'
|
||
|
import AddPlayersComponent from '../../frontend/src/components/pages/AddPlayers.component'
|
||
|
|
||
|
// Since we're testing code meant for the browser, not node, mock this
|
||
|
global.window = global
|
||
|
global.APP_BASE_PATH = 'http://fake.url/app/'
|
||
|
|
||
|
const get_inst = () => {
|
||
|
return [new AddPlayersComponent(), [
|
||
|
{
|
||
|
name: 'Lorem',
|
||
|
position: 'Ipsum',
|
||
|
},
|
||
|
{
|
||
|
name: 'Dolor',
|
||
|
position: 'Sit',
|
||
|
},
|
||
|
{
|
||
|
name: 'Amet',
|
||
|
position: 'Fubar',
|
||
|
},
|
||
|
]]
|
||
|
}
|
||
|
|
||
|
describe('the add players page component', function() {
|
||
|
it('should extend the component class', function() {
|
||
|
expect(get_inst()[0]).to.be.an.instanceOf(AddPlayersComponent)
|
||
|
})
|
||
|
|
||
|
it('should quick-filter the players', function() {
|
||
|
const [inst, players] = get_inst()
|
||
|
|
||
|
inst.possible_players = players
|
||
|
inst.quick_filter = 'lorem'
|
||
|
|
||
|
inst.on_filter_change()
|
||
|
|
||
|
expect(inst.filtered_players).to.be.an('array')
|
||
|
expect(inst.filtered_players.length).to.be.equal(1)
|
||
|
expect(inst.filtered_players[0]).to.be.eql({
|
||
|
name: 'Lorem',
|
||
|
position: 'Ipsum',
|
||
|
})
|
||
|
})
|
||
|
|
||
|
it('should allow switching to my team only', function() {
|
||
|
const [inst, players] = get_inst()
|
||
|
const my_team = [players[1]]
|
||
|
|
||
|
inst.all_players = players
|
||
|
inst.my_team = my_team
|
||
|
|
||
|
inst.to_my_team_only()
|
||
|
|
||
|
expect(inst.possible_players).to.be.eql(my_team)
|
||
|
expect(inst.my_team_only).to.be.true
|
||
|
})
|
||
|
|
||
|
it('should allow switching to view all players', function() {
|
||
|
const [inst, players] = get_inst()
|
||
|
const my_team = [players[1]]
|
||
|
|
||
|
inst.all_players = players
|
||
|
inst.my_team = my_team
|
||
|
|
||
|
inst.to_all_players()
|
||
|
|
||
|
expect(inst.possible_players).to.be.eql(players)
|
||
|
expect(inst.my_team_only).to.be.false
|
||
|
})
|
||
|
|
||
|
it('should allow adding a player', function() {
|
||
|
const [inst, players] = get_inst()
|
||
|
|
||
|
inst.my_team = []
|
||
|
|
||
|
inst.add_to_team(players[0])
|
||
|
inst.add_to_team(players[0])
|
||
|
inst.add_to_team(players[0])
|
||
|
|
||
|
expect(inst.my_team.length).to.be.equal(1)
|
||
|
expect(inst.my_team[0]).to.be.eql(players[0])
|
||
|
})
|
||
|
|
||
|
it('should allow removing a player', function() {
|
||
|
const [inst, players] = get_inst()
|
||
|
|
||
|
inst.my_team = [...players]
|
||
|
const removed = [players[0], players[2]]
|
||
|
|
||
|
inst.remove_from_team(players[1])
|
||
|
inst.remove_from_team(players[1])
|
||
|
inst.remove_from_team(players[1])
|
||
|
|
||
|
expect(inst.my_team.length).to.be.equal(2)
|
||
|
expect(inst.my_team).to.be.eql(removed)
|
||
|
})
|
||
|
})
|