mirror of
https://github.com/maxswa/osrs-json-hiscores.git
synced 2025-10-15 10:19:04 +00:00
Throw error for unknown hiscores CSV format
This commit is contained in:
@@ -11,7 +11,8 @@ import {
|
||||
getPlayerTableURL,
|
||||
getSkillPageURL,
|
||||
getStatsURL,
|
||||
BOSSES
|
||||
BOSSES,
|
||||
INVALID_FORMAT_ERROR
|
||||
} from '../src/index';
|
||||
|
||||
const B0ATY_NAME = 'B0ATY';
|
||||
@@ -232,6 +233,16 @@ test('Parse CSV to json', () => {
|
||||
expect(parseStats(csv)).toStrictEqual(expectedOutput);
|
||||
});
|
||||
|
||||
test('Parse CSV with unknown activity', () => {
|
||||
const statsWithUnknownActivity = lynxTitanStats + `
|
||||
-1,-1`;
|
||||
expect(() => parseStats(statsWithUnknownActivity)).toThrow(INVALID_FORMAT_ERROR);
|
||||
});
|
||||
|
||||
test('Parse invalid CSV', () => {
|
||||
expect(() => parseStats('invalid')).toThrow(INVALID_FORMAT_ERROR);
|
||||
});
|
||||
|
||||
describe('Get name format', () => {
|
||||
it('gets a name with a space', async () => {
|
||||
const data = await getRSNFormat(LYNX_TITAN_SPACE_NAME);
|
||||
|
@@ -27,7 +27,8 @@ import {
|
||||
rsnFromElement,
|
||||
getActivityPageURL,
|
||||
httpGet,
|
||||
BOSSES
|
||||
BOSSES,
|
||||
INVALID_FORMAT_ERROR
|
||||
} from './utils';
|
||||
|
||||
/**
|
||||
@@ -74,6 +75,10 @@ export function parseStats(csv: string): Stats {
|
||||
.filter((entry) => !!entry)
|
||||
.map((stat) => stat.split(','));
|
||||
|
||||
if (splitCSV.length !== SKILLS.length + BH_MODES.length + CLUES.length + BOSSES.length + 3) {
|
||||
throw Error(INVALID_FORMAT_ERROR);
|
||||
}
|
||||
|
||||
const skillObjects: Skill[] = splitCSV
|
||||
.filter((stat) => stat.length === 3)
|
||||
.map((stat) => {
|
||||
|
@@ -245,3 +245,5 @@ export const FORMATTED_BH_NAMES: FormattedBHNames = {
|
||||
export const FORMATTED_LMS = 'Last Man Standing';
|
||||
export const FORMATTED_SOUL_WARS = 'Soul Wars Zeal';
|
||||
export const FORMATTED_LEAGUE_POINTS = 'League Points';
|
||||
|
||||
export const INVALID_FORMAT_ERROR = 'Invalid hiscores format';
|
||||
|
Reference in New Issue
Block a user