Compare commits

..

5 Commits

Author SHA1 Message Date
maxswa
44dea6b35c Add line for nex in lynxTitanStats.csv 2022-01-05 21:50:28 -05:00
maxswa
0bf491638c v2.7.0 2022-01-05 10:04:11 -05:00
Max Swartwout
febca534b0 Merge pull request #45 from maxswa/add-nex
Add Nex.
2022-01-05 09:57:56 -05:00
Max Swartwout
8daee5c39b Merge pull request #46 from molo-pl/main
Throw error for unknown hiscores CSV format
2022-01-05 09:52:42 -05:00
molo-pl
f98cf8aaaa Throw error for unknown hiscores CSV format 2022-01-04 23:05:34 +01:00
5 changed files with 22 additions and 3 deletions

View File

@@ -11,7 +11,8 @@ import {
getPlayerTableURL,
getSkillPageURL,
getStatsURL,
BOSSES
BOSSES,
INVALID_FORMAT_ERROR
} from '../src/index';
const B0ATY_NAME = 'B0ATY';
@@ -234,6 +235,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);

View File

@@ -80,4 +80,5 @@
-1,-1
-1,-1
-1,-1
-1,-1
-1,-1
Can't render this file because it has a wrong number of fields in line 25.

View File

@@ -1,6 +1,6 @@
{
"name": "osrs-json-hiscores",
"version": "2.6.0",
"version": "2.7.0",
"description": "The Old School Runescape API wrapper that does more!",
"main": "lib/index.js",
"types": "lib/index.d.ts",

View File

@@ -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) => {

View File

@@ -247,3 +247,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';