Add credentials class tests
parent
c7b3f97452
commit
9f534661c8
|
@ -0,0 +1,52 @@
|
|||
"use strict";
|
||||
|
||||
// Public module from npm
|
||||
import { expect } from "chai";
|
||||
|
||||
// Modules from file
|
||||
import Credentials from "../../src/scripts/classes/credentials";
|
||||
|
||||
export function suite(): void {
|
||||
it("Check token formatting", async function testValidToken() {
|
||||
// Token example:
|
||||
// 1604309951,0338213c00fcbd894fd9415e6ba08403
|
||||
// 1604309986,ebdb75502337699381f0f55c86353555
|
||||
// 1604310008,2d50d55808e5ec3a157ec01953da9d26
|
||||
|
||||
// Fetch token (is a GET request, we don't need the credentials)
|
||||
const cred = new Credentials(null, null);
|
||||
await cred.fetchToken();
|
||||
|
||||
// Parse token for assert
|
||||
const splitted = cred.token.split(",");
|
||||
const unique = splitted[0];
|
||||
const hash = splitted[1];
|
||||
expect(splitted.length).to.be.equal(2, "The token consists of two parts");
|
||||
|
||||
// Check type of parts
|
||||
expect(isNumeric(unique)).to.be.true;
|
||||
expect(isNumeric(hash)).to.be.false;
|
||||
|
||||
// The second part is most probably the MD5 hash of something
|
||||
expect(hash.length).to.be.equal(32, "Hash should have 32 hex chars");
|
||||
});
|
||||
}
|
||||
|
||||
//#region Private methods
|
||||
|
||||
/**
|
||||
* Check if a string is a number
|
||||
* @author Dan, Ben Aston
|
||||
* @see https://preview.tinyurl.com/y46jqwkt
|
||||
*/
|
||||
function isNumeric(str: string): boolean {
|
||||
// We only process strings!
|
||||
if (typeof str != "string") return false;
|
||||
|
||||
// Use type coercion to parse the _entirety_ of the string
|
||||
// (`parseFloat` alone does not do this) and ensure strings
|
||||
// of whitespace fail
|
||||
return !isNaN(parseInt(str, 10)) && !isNaN(parseFloat(str));
|
||||
}
|
||||
|
||||
//#endregion
|
Loading…
Reference in New Issue