mirror of
https://github.com/maxswa/osrs-json-hiscores.git
synced 2025-10-15 10:19:04 +00:00
Add hyphen to valid rsn regex.
This commit is contained in:
@@ -4,7 +4,7 @@ import {
|
|||||||
getStats,
|
getStats,
|
||||||
getStatsByGamemode,
|
getStatsByGamemode,
|
||||||
getRSNFormat,
|
getRSNFormat,
|
||||||
Stats,
|
Stats
|
||||||
} from '../src/index';
|
} from '../src/index';
|
||||||
|
|
||||||
test('Parse CSV to json', () => {
|
test('Parse CSV to json', () => {
|
||||||
@@ -115,12 +115,12 @@ test('Parse CSV to json', () => {
|
|||||||
farming: { rank: 821, level: 99, xp: 62123353 },
|
farming: { rank: 821, level: 99, xp: 62123353 },
|
||||||
runecraft: { rank: 169, level: 99, xp: 43127930 },
|
runecraft: { rank: 169, level: 99, xp: 43127930 },
|
||||||
hunter: { rank: 810, level: 99, xp: 37688883 },
|
hunter: { rank: 810, level: 99, xp: 37688883 },
|
||||||
construction: { rank: 92, level: 99, xp: 32005622 },
|
construction: { rank: 92, level: 99, xp: 32005622 }
|
||||||
},
|
},
|
||||||
leaguePoints: { rank: 23423, score: 478 },
|
leaguePoints: { rank: 23423, score: 478 },
|
||||||
bountyHunter: {
|
bountyHunter: {
|
||||||
hunter: { rank: 99831, score: 23 },
|
hunter: { rank: 99831, score: 23 },
|
||||||
rogue: { rank: 89912, score: 37 },
|
rogue: { rank: 89912, score: 37 }
|
||||||
},
|
},
|
||||||
lastManStanding: { rank: 4814, score: 898 },
|
lastManStanding: { rank: 4814, score: 898 },
|
||||||
soulWarsZeal: { rank: 37, score: 225 },
|
soulWarsZeal: { rank: 37, score: 225 },
|
||||||
@@ -131,7 +131,7 @@ test('Parse CSV to json', () => {
|
|||||||
medium: { rank: 127, score: 4259 },
|
medium: { rank: 127, score: 4259 },
|
||||||
hard: { rank: 361, score: 915 },
|
hard: { rank: 361, score: 915 },
|
||||||
elite: { rank: 392, score: 250 },
|
elite: { rank: 392, score: 250 },
|
||||||
master: { rank: 1, score: 6143 },
|
master: { rank: 1, score: 6143 }
|
||||||
},
|
},
|
||||||
bosses: {
|
bosses: {
|
||||||
abyssalSire: { rank: 382, score: 2780 },
|
abyssalSire: { rank: 382, score: 2780 },
|
||||||
@@ -178,17 +178,38 @@ test('Parse CSV to json', () => {
|
|||||||
vorkath: { rank: 8623, score: 1340 },
|
vorkath: { rank: 8623, score: 1340 },
|
||||||
wintertodt: { rank: 605, score: 1694 },
|
wintertodt: { rank: 605, score: 1694 },
|
||||||
zalcano: { rank: -1, score: -1 },
|
zalcano: { rank: -1, score: -1 },
|
||||||
zulrah: { rank: 3867, score: 4583 },
|
zulrah: { rank: 3867, score: 4583 }
|
||||||
},
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
expect(parseStats(csv)).toStrictEqual(expectedOutput);
|
expect(parseStats(csv)).toStrictEqual(expectedOutput);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('Get name format', async () => {
|
describe('Get name format', () => {
|
||||||
jest.setTimeout(30000);
|
it('gets a name with a space', async () => {
|
||||||
const data = await getRSNFormat('lYnX tiTaN');
|
jest.setTimeout(30000);
|
||||||
expect(data).toBe('Lynx Titan');
|
const data = await getRSNFormat('lYnX tiTaN');
|
||||||
|
expect(data).toBe('Lynx Titan');
|
||||||
|
});
|
||||||
|
it('gets a name with an underscore', async () => {
|
||||||
|
jest.setTimeout(30000);
|
||||||
|
const data = await getRSNFormat('lYnX_tiTaN');
|
||||||
|
expect(data).toBe('Lynx Titan');
|
||||||
|
});
|
||||||
|
it('gets a name with a hyphen', async () => {
|
||||||
|
jest.setTimeout(30000);
|
||||||
|
const data = await getRSNFormat('lYnX-tiTaN');
|
||||||
|
expect(data).toBe('Lynx Titan');
|
||||||
|
});
|
||||||
|
it('gets a name with a number', async () => {
|
||||||
|
jest.setTimeout(30000);
|
||||||
|
const data = await getRSNFormat('B0ATY');
|
||||||
|
expect(data).toBe('B0aty');
|
||||||
|
});
|
||||||
|
it('throws an error for a name with invalid characters', async () => {
|
||||||
|
jest.setTimeout(30000);
|
||||||
|
await expect(getRSNFormat('b&aty')).rejects.toBeTruthy();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
test('Get attack top page', async () => {
|
test('Get attack top page', async () => {
|
||||||
@@ -200,14 +221,14 @@ test('Get attack top page', async () => {
|
|||||||
rank: 1,
|
rank: 1,
|
||||||
level: 99,
|
level: 99,
|
||||||
xp: 200000000,
|
xp: 200000000,
|
||||||
dead: false,
|
dead: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: expect.any(String),
|
name: expect.any(String),
|
||||||
rank: 2,
|
rank: 2,
|
||||||
level: 99,
|
level: 99,
|
||||||
xp: 200000000,
|
xp: 200000000,
|
||||||
dead: false,
|
dead: false
|
||||||
},
|
},
|
||||||
{ name: 'Drakon', rank: 3, level: 99, xp: 200000000, dead: false },
|
{ name: 'Drakon', rank: 3, level: 99, xp: 200000000, dead: false },
|
||||||
{
|
{
|
||||||
@@ -215,161 +236,161 @@ test('Get attack top page', async () => {
|
|||||||
rank: 4,
|
rank: 4,
|
||||||
level: 99,
|
level: 99,
|
||||||
xp: 200000000,
|
xp: 200000000,
|
||||||
dead: false,
|
dead: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: expect.any(String),
|
name: expect.any(String),
|
||||||
rank: 5,
|
rank: 5,
|
||||||
level: 99,
|
level: 99,
|
||||||
xp: 200000000,
|
xp: 200000000,
|
||||||
dead: false,
|
dead: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: expect.any(String),
|
name: expect.any(String),
|
||||||
rank: 6,
|
rank: 6,
|
||||||
level: 99,
|
level: 99,
|
||||||
xp: 200000000,
|
xp: 200000000,
|
||||||
dead: false,
|
dead: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: expect.any(String),
|
name: expect.any(String),
|
||||||
rank: 7,
|
rank: 7,
|
||||||
level: 99,
|
level: 99,
|
||||||
xp: 200000000,
|
xp: 200000000,
|
||||||
dead: false,
|
dead: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: expect.any(String),
|
name: expect.any(String),
|
||||||
rank: 8,
|
rank: 8,
|
||||||
level: 99,
|
level: 99,
|
||||||
xp: 200000000,
|
xp: 200000000,
|
||||||
dead: false,
|
dead: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: expect.any(String),
|
name: expect.any(String),
|
||||||
rank: 9,
|
rank: 9,
|
||||||
level: 99,
|
level: 99,
|
||||||
xp: 200000000,
|
xp: 200000000,
|
||||||
dead: false,
|
dead: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: expect.any(String),
|
name: expect.any(String),
|
||||||
rank: 10,
|
rank: 10,
|
||||||
level: 99,
|
level: 99,
|
||||||
xp: 200000000,
|
xp: 200000000,
|
||||||
dead: false,
|
dead: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: expect.any(String),
|
name: expect.any(String),
|
||||||
rank: 11,
|
rank: 11,
|
||||||
level: 99,
|
level: 99,
|
||||||
xp: 200000000,
|
xp: 200000000,
|
||||||
dead: false,
|
dead: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: expect.any(String),
|
name: expect.any(String),
|
||||||
rank: 12,
|
rank: 12,
|
||||||
level: 99,
|
level: 99,
|
||||||
xp: 200000000,
|
xp: 200000000,
|
||||||
dead: false,
|
dead: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: expect.any(String),
|
name: expect.any(String),
|
||||||
rank: 13,
|
rank: 13,
|
||||||
level: 99,
|
level: 99,
|
||||||
xp: 200000000,
|
xp: 200000000,
|
||||||
dead: false,
|
dead: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: expect.any(String),
|
name: expect.any(String),
|
||||||
rank: 14,
|
rank: 14,
|
||||||
level: 99,
|
level: 99,
|
||||||
xp: 200000000,
|
xp: 200000000,
|
||||||
dead: false,
|
dead: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: expect.any(String),
|
name: expect.any(String),
|
||||||
rank: 15,
|
rank: 15,
|
||||||
level: 99,
|
level: 99,
|
||||||
xp: 200000000,
|
xp: 200000000,
|
||||||
dead: false,
|
dead: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: expect.any(String),
|
name: expect.any(String),
|
||||||
rank: 16,
|
rank: 16,
|
||||||
level: 99,
|
level: 99,
|
||||||
xp: 200000000,
|
xp: 200000000,
|
||||||
dead: false,
|
dead: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: expect.any(String),
|
name: expect.any(String),
|
||||||
rank: 17,
|
rank: 17,
|
||||||
level: 99,
|
level: 99,
|
||||||
xp: 200000000,
|
xp: 200000000,
|
||||||
dead: false,
|
dead: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: expect.any(String),
|
name: expect.any(String),
|
||||||
rank: 18,
|
rank: 18,
|
||||||
level: 99,
|
level: 99,
|
||||||
xp: 200000000,
|
xp: 200000000,
|
||||||
dead: false,
|
dead: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: expect.any(String),
|
name: expect.any(String),
|
||||||
rank: 19,
|
rank: 19,
|
||||||
level: 99,
|
level: 99,
|
||||||
xp: 200000000,
|
xp: 200000000,
|
||||||
dead: false,
|
dead: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: expect.any(String),
|
name: expect.any(String),
|
||||||
rank: 20,
|
rank: 20,
|
||||||
level: 99,
|
level: 99,
|
||||||
xp: 200000000,
|
xp: 200000000,
|
||||||
dead: false,
|
dead: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: expect.any(String),
|
name: expect.any(String),
|
||||||
rank: 21,
|
rank: 21,
|
||||||
level: 99,
|
level: 99,
|
||||||
xp: 200000000,
|
xp: 200000000,
|
||||||
dead: false,
|
dead: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: expect.any(String),
|
name: expect.any(String),
|
||||||
rank: 22,
|
rank: 22,
|
||||||
level: 99,
|
level: 99,
|
||||||
xp: 200000000,
|
xp: 200000000,
|
||||||
dead: false,
|
dead: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: expect.any(String),
|
name: expect.any(String),
|
||||||
rank: 23,
|
rank: 23,
|
||||||
level: 99,
|
level: 99,
|
||||||
xp: 200000000,
|
xp: 200000000,
|
||||||
dead: false,
|
dead: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: expect.any(String),
|
name: expect.any(String),
|
||||||
rank: 24,
|
rank: 24,
|
||||||
level: 99,
|
level: 99,
|
||||||
xp: 200000000,
|
xp: 200000000,
|
||||||
dead: false,
|
dead: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: expect.any(String),
|
name: expect.any(String),
|
||||||
rank: 25,
|
rank: 25,
|
||||||
level: 99,
|
level: 99,
|
||||||
xp: 200000000,
|
xp: 200000000,
|
||||||
dead: false,
|
dead: false
|
||||||
},
|
}
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('Get non-existant player', async () => {
|
test('Get non-existant player', async () => {
|
||||||
jest.setTimeout(30000);
|
jest.setTimeout(30000);
|
||||||
getStats('fishy').catch(err => {
|
getStats('fishy').catch((err) => {
|
||||||
if (err.response) {
|
if (err.response) {
|
||||||
expect(err.response.status).toBe(404);
|
expect(err.response.status).toBe(404);
|
||||||
}
|
}
|
||||||
@@ -403,6 +424,6 @@ test('Get stats by gamemode', async () => {
|
|||||||
farming: { rank: expect.any(Number), level: 99, xp: 200000000 },
|
farming: { rank: expect.any(Number), level: 99, xp: 200000000 },
|
||||||
runecraft: { rank: expect.any(Number), level: 99, xp: 200000000 },
|
runecraft: { rank: expect.any(Number), level: 99, xp: 200000000 },
|
||||||
hunter: { rank: expect.any(Number), level: 99, xp: 200000000 },
|
hunter: { rank: expect.any(Number), level: 99, xp: 200000000 },
|
||||||
construction: { rank: expect.any(Number), level: 99, xp: 200000000 },
|
construction: { rank: expect.any(Number), level: 99, xp: 200000000 }
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@@ -39,7 +39,7 @@ import {
|
|||||||
export async function getRSNFormat(rsn: string): Promise<string> {
|
export async function getRSNFormat(rsn: string): Promise<string> {
|
||||||
if (typeof rsn !== 'string') {
|
if (typeof rsn !== 'string') {
|
||||||
throw Error('RSN must be a string');
|
throw Error('RSN must be a string');
|
||||||
} else if (!/^[a-zA-Z0-9 _]+$/.test(rsn)) {
|
} else if (!/^[a-zA-Z0-9 _-]+$/.test(rsn)) {
|
||||||
throw Error('RSN contains invalid character');
|
throw Error('RSN contains invalid character');
|
||||||
} else if (rsn.length > 12 || rsn.length < 1) {
|
} else if (rsn.length > 12 || rsn.length < 1) {
|
||||||
throw Error('RSN must be between 1 and 12 characters');
|
throw Error('RSN must be between 1 and 12 characters');
|
||||||
|
Reference in New Issue
Block a user