'use strict' const ShiftStats = require('../index') const chai = require('chai') let expect = chai.expect const chaiAsPromised = require("chai-as-promised-compat") chai.use(chaiAsPromised) describe('ShiftStats', () => { describe('bad api key', () => { it('throws an error', () => { let s = new ShiftStats('a') expect(s.login()).to.be.rejected }) }) describe('with valid api key', function() { this.timeout(0) let s = new ShiftStats() before(async () => { await s.login() }) context('teamSearch', () => { let teamSearch before(async () => { teamSearch = await s.teamSearch('hockey', 'bears') }) it('returns some teams', () => { expect(teamSearch).to.have.property('teams') expect(teamSearch.teams).to.be.an('array') }) it('finds the right team', () => { let bears = teamSearch.teams.find(team => team.id == 18827) expect(bears).to.have.property('id') }) }) context('teamSchedule', () => { let teamSchedule before(async () => { teamSchedule = await s.teamSchedule(18827) }) it('returns a schedule', () => { expect(teamSchedule).to.have.property('games') }) }) context('teamPlayersList', () => { let ret before(async () => { ret = await s.teamPlayersList(18827) }) it('returns players', () => { expect(ret).to.have.property('players') }) }) context('divisionGamesList', () => { let ret before(async () => { ret = await s.divisionGamesList(3057) }) it('returns a list of games', () => { expect(ret).to.have.property('games') }) }) context('seasonDivisionsList', () => { let ret before(async () => { ret = await s.seasonDivisionsList(741) }) it('returns a list of divisions', () => { expect(ret).to.have.property('divisions') }) }) context('seasonSuspensions', () => { let ret before(async () => { ret = await s.seasonSuspensions(741, false) }) it('returns a list of suspensions', () => { expect(ret).to.have.property('suspensions') }) }) context('leagues', () => { let ret before(async () => { ret = await s.leagues() }) it('returns a list of leagues', () => { expect(ret).to.have.property('leagues') }) }) context('league', () => { let ret before(async () => { ret = await s.league(3) }) it('returns a league', () => { expect(ret).to.have.property('league') }) }) context('leagueSeasons', () => { let ret before(async () => { ret = await s.leagueSeasons(3) }) it('returns a list of seasons', () => { expect(ret).to.have.property('seasons') }) }) context('leagueSeasons', () => { let ret before(async () => { ret = await s.leagueSuspensions(3, true) }) it('returns a list of suspensions', () => { expect(ret).to.have.property('suspensions') }) }) context('teamsInDivision', () => { let ret before(async () => { ret = await s.teamsInDivision('XPL', 317, true) }) it('returns a list of teams', () => { expect(ret).to.have.property('teams') }) }) context('teamGames', () => { let ret before(async () => { ret = await s.teamGames(1, true, true) }) it('returns a list of games', () => { expect(ret).to.have.property('games') }) }) context('teamGamesForStatus', () => { let ret before(async () => { ret = await s.teamGamesForStatus(1, 'Final,In Progress') }) it('returns a list of games', () => { expect(ret).to.have.property('games') }) }) context('teamPractices', () => { let ret before(async () => { ret = await s.teamPractices(18827, true, true) }) it('returns a list of practices', () => { expect(ret).to.have.property('practices') }) }) context('teamSuspensions', () => { let ret before(async () => { ret = await s.teamSuspensions(18827, false) }) it('returns a list of suspensions', () => { expect(ret).to.have.property('suspensions') }) }) context('game', () => { let ret before(async () => { ret = await s.game(128740) }) it('returns game info', () => { expect(ret).to.have.property('game') }) }) context('gameGoals', () => { let ret before(async () => { ret = await s.gameGoals(128740, 'away') }) it('returns a list of away goals', () => { expect(ret).to.have.property('away_goals') }) }) context('gameGoalies', () => { let ret before(async () => { ret = await s.gameGoalies(128740, 'away') }) it('returns a list of away goalies', () => { expect(ret).to.have.property('away_goalies') }) }) context('gamePenalties', () => { let ret before(async () => { ret = await s.gamePenalties(128740, 'away') }) it('returns a list of away penalties', () => { expect(ret).to.have.property('away_penalties') }) }) context('gameRoster', () => { let ret before(async () => { ret = await s.gameRoster(128740, 'away') }) it('returns an away roster', () => { expect(ret).to.have.property('away_roster') }) }) context('divisionStandings', () => { let ret before(async () => { ret = await s.divisionStandings(3057, 'Regular Season') }) it('returns ranked list of teams', () => { expect(ret).to.have.property('teams') }) }) context('divisionTeams', () => { let ret before(async () => { ret = await s.divisionTeams(3057) }) it('returns a list of teams', () => { expect(ret).to.have.property('teams') }) }) context('divisionLeaders', () => { let ret before(async () => { ret = await s.divisionLeaders(3057, 'Regular Season', 5, ['points', 'goals', 'assists']) }) it('returns a list of leaders', () => { expect(ret).to.have.property('leaders') }) }) context('divisionSuspensions', () => { let ret before(async () => { ret = await s.divisionSuspensions(3057, false) }) it('returns a list of suspensions', () => { expect(ret).to.have.property('suspensions') }) }) }) })