__tests__
Folders and files
Name | Name | Last commit date | ||
---|---|---|---|---|
parent directory.. | ||||
import { French, YosemiteDecimal, Font, VScale, GradeScales, convertGrade, Ewbank } from '../index' describe('Convert grades to scores', () => { test('returns the correct score', () => { expect(French.getScore('8a')).toEqual([84, 85]) expect(French.getScore('7c+/8a')).toEqual([83, 84]) expect(YosemiteDecimal.getScore('5.12+')).toEqual([79, 80]) }) }) describe('Convert scores to greades', () => { test('supports single score', () => { expect(Font.getGrade(80)).toEqual('7c') }) test('supports a range of scores', () => { expect(Font.getGrade([79, 81])).toEqual('7b+/7c') }) }) describe('Validate grading scales', () => { test('6A is Font scale not VScale', () => { expect(VScale.isType('6A')).toBe(false) expect(Font.isType('6A')).toBe(true) }) }) describe('Convert grades across scales', () => { jest.spyOn(console, 'warn').mockImplementation() beforeEach(() => { jest.clearAllMocks() }) test('5.11a YDS is 6b+/6c in Frence', () => { expect(convertGrade('5.11a', GradeScales.YDS, GradeScales.FRENCH)).toEqual( '6b+/6c' ) }) test('6a Font is V3', () => { expect(convertGrade('6a', GradeScales.FONT, GradeScales.VSCALE)).toEqual( 'V3' ) }) test('Convert from yds to vscale is not allowed', () => { expect(convertGrade('5.11a', GradeScales.YDS, GradeScales.VSCALE)).toEqual( '' ) expect(console.warn).toHaveBeenCalledWith( expect.stringContaining( "Scale: Yosemite Decimal System doesn't support converting to Scale: V Scale" ) ) }) }) describe('Get gradeband', () => { test('returns correct grade band', () => { expect(Ewbank.getGradeBand('10')).toEqual('beginner') expect(Ewbank.getGradeBand('30')).toEqual('expert') }) test('pass invalid grade format returns unknown', () => { expect(Ewbank.getGradeBand('6a')).toEqual('unknown') }) }) describe('Compare grades', () => { const harder = French.getScore('8a') // Output: [ 84, 85 ] const easier = YosemiteDecimal.getScore('5.13a') // Output: [ 82, 83 ] test('returns correct score', () => { expect(harder).toEqual([84, 85]) expect(easier).toEqual([82, 83]) expect(harder > easier).toBe(true) }) })