import { datatype } from 'faker' import { CompetitionCompetitor, CompetitionHistory } from '../../../models/ranking' import { GenericOrdenator } from './generic.ordenator' describe('GenericOrdenator', () => { describe('#sort', () => { const competitors: CompetitionCompetitor[] = [] const competitorUnsubscriberNoHistory = CompetitionCompetitor.toInstance({ is_subscriber: false, score: 0, history: [], }) const competitorNoHistory = CompetitionCompetitor.toInstance({ is_subscriber: true, score: 0, history: [] }) const competitorUnsubscriber = CompetitionCompetitor.toInstance({ is_subscriber: false, score: 0, history: [CompetitionHistory.toInstance({ value: datatype.number({ min: 1 }) })], }) const competitorScored = CompetitionCompetitor.toInstance({ is_subscriber: true, score: datatype.number({ min: 1 }), history: [CompetitionHistory.toInstance({ value: datatype.number({ min: 1 }) })], }) const competitorUnsubscriberScored = CompetitionCompetitor.toInstance({ is_subscriber: false, score: datatype.number({ min: 1 }), }) const competitorValued = CompetitionCompetitor.toInstance({ is_subscriber: true, score: 0, history: [CompetitionHistory.toInstance({ value: datatype.number({ min: 1 }) })], }) beforeAll(() => { competitors.push(competitorUnsubscriberNoHistory) competitors.push(competitorNoHistory) competitors.push(competitorUnsubscriber) competitors.push(competitorScored) competitors.push(competitorUnsubscriberScored) competitors.push(competitorValued) }) it('returns ordened levels', () => { expect(GenericOrdenator.sort(competitors)).toEqual([ competitorScored, competitorValued, competitorUnsubscriberNoHistory, competitorNoHistory, competitorUnsubscriber, competitorUnsubscriberScored, ]) }) }) })