Set up CodeCov

pull/8/head
MillenniumEarl 2020-10-03 18:16:45 +02:00
parent d18cb0843e
commit 5920563516
3 changed files with 857 additions and 43 deletions

View File

@ -9,7 +9,7 @@ const urlExist = require("url-exist");
// Modules from file // Modules from file
const shared = require("./scripts/shared.js"); const shared = require("./scripts/shared.js");
const constURLs = require("./scripts/costants/urls.js"); const constURLs = require("./scripts/costants/urls.js");
const constSelectors = require("./scripts/costants/css-selectors.js"); const selectors = require("./scripts/costants/css-selectors.js");
const { isStringAValidURL } = require("./scripts/urls-helper.js"); const { isStringAValidURL } = require("./scripts/urls-helper.js");
const gameScraper = require("./scripts/game-scraper.js"); const gameScraper = require("./scripts/game-scraper.js");
const { const {
@ -20,13 +20,13 @@ const GameInfo = require("./scripts/classes/game-info.js");
const LoginResult = require("./scripts/classes/login-result.js"); const LoginResult = require("./scripts/classes/login-result.js");
const UserData = require("./scripts/classes/user-data.js"); const UserData = require("./scripts/classes/user-data.js");
//#region Expose classes //#region Export classes
module.exports.GameInfo = GameInfo; module.exports.GameInfo = GameInfo;
module.exports.LoginResult = LoginResult; module.exports.LoginResult = LoginResult;
module.exports.UserData = UserData; module.exports.UserData = UserData;
//#endregion Expose classes //#endregion Export classes
//#region Exposed properties //#region Export properties
/** /**
* Shows log messages and other useful functions for module debugging. * Shows log messages and other useful functions for module debugging.
* @param {Boolean} value * @param {Boolean} value
@ -70,7 +70,7 @@ module.exports.setCacheDir = function (value) {
// Create directory if it doesn't exist // Create directory if it doesn't exist
if (!fs.existsSync(shared.cacheDir)) fs.mkdirSync(shared.cacheDir); if (!fs.existsSync(shared.cacheDir)) fs.mkdirSync(shared.cacheDir);
}; };
//#endregion Exposed properties //#endregion Export properties
//#region Global variables //#region Global variables
var _browser = null; var _browser = null;
@ -161,20 +161,20 @@ module.exports.loadF95BaseData = async function () {
}); });
// Obtain engines (disc/online) // Obtain engines (disc/online)
await page.waitForSelector(constSelectors.ENGINE_ID_SELECTOR); await page.waitForSelector(selectors.ENGINE_ID_SELECTOR);
shared.engines = await loadValuesFromLatestPage( shared.engines = await loadValuesFromLatestPage(
page, page,
shared.enginesCachePath, shared.enginesCachePath,
constSelectors.ENGINE_ID_SELECTOR, selectors.ENGINE_ID_SELECTOR,
"engines" "engines"
); );
// Obtain statuses (disc/online) // Obtain statuses (disc/online)
await page.waitForSelector(constSelectors.STATUS_ID_SELECTOR); await page.waitForSelector(selectors.STATUS_ID_SELECTOR);
shared.statuses = await loadValuesFromLatestPage( shared.statuses = await loadValuesFromLatestPage(
page, page,
shared.statusesCachePath, shared.statusesCachePath,
constSelectors.STATUS_ID_SELECTOR, selectors.STATUS_ID_SELECTOR,
"statuses" "statuses"
); );
@ -267,21 +267,21 @@ module.exports.getUserData = async function () {
await page.goto(constURLs.F95_BASE_URL); // Go to base page await page.goto(constURLs.F95_BASE_URL); // Go to base page
// Explicitly wait for the required items to load // Explicitly wait for the required items to load
await page.waitForSelector(constSelectors.USERNAME_ELEMENT); await page.waitForSelector(selectors.USERNAME_ELEMENT);
await page.waitForSelector(constSelectors.AVATAR_PIC); await page.waitForSelector(selectors.AVATAR_PIC);
let threads = getUserWatchedGameThreads(browser); let threads = getUserWatchedGameThreads(browser);
let username = await page.evaluate( let username = await page.evaluate(
/* istanbul ignore next */ (selector) => /* istanbul ignore next */ (selector) =>
document.querySelector(selector).innerText, document.querySelector(selector).innerText,
constSelectors.USERNAME_ELEMENT selectors.USERNAME_ELEMENT
); );
let avatarSrc = await page.evaluate( let avatarSrc = await page.evaluate(
/* istanbul ignore next */ (selector) => /* istanbul ignore next */ (selector) =>
document.querySelector(selector).getAttribute("src"), document.querySelector(selector).getAttribute("src"),
constSelectors.AVATAR_PIC selectors.AVATAR_PIC
); );
let ud = new UserData(); let ud = new UserData();
@ -441,12 +441,12 @@ async function loginF95(browser, username, password) {
await page.goto(constURLs.F95_LOGIN_URL); // Go to login page await page.goto(constURLs.F95_LOGIN_URL); // Go to login page
// Explicitly wait for the required items to load // Explicitly wait for the required items to load
await page.waitForSelector(constSelectors.USERNAME_INPUT); await page.waitForSelector(selectors.USERNAME_INPUT);
await page.waitForSelector(constSelectors.PASSWORD_INPUT); await page.waitForSelector(selectors.PASSWORD_INPUT);
await page.waitForSelector(constSelectors.LOGIN_BUTTON); await page.waitForSelector(selectors.LOGIN_BUTTON);
await page.type(constSelectors.USERNAME_INPUT, username); // Insert username await page.type(selectors.USERNAME_INPUT, username); // Insert username
await page.type(constSelectors.PASSWORD_INPUT, password); // Insert password await page.type(selectors.PASSWORD_INPUT, password); // Insert password
await page.click(constSelectors.LOGIN_BUTTON); // Click on the login button await page.click(selectors.LOGIN_BUTTON); // Click on the login button
await page.waitForNavigation({ await page.waitForNavigation({
waitUntil: shared.WAIT_STATEMENT, waitUntil: shared.WAIT_STATEMENT,
}); // Wait for page to load }); // Wait for page to load
@ -458,7 +458,7 @@ async function loginF95(browser, username, password) {
result.success = await page.evaluate( result.success = await page.evaluate(
/* istanbul ignore next */ (selector) => /* istanbul ignore next */ (selector) =>
document.querySelector(selector) !== null, document.querySelector(selector) !== null,
constSelectors.AVATAR_INFO selectors.AVATAR_INFO
); );
// Save cookies to avoid re-auth // Save cookies to avoid re-auth
@ -472,13 +472,13 @@ async function loginF95(browser, username, password) {
await page.evaluate( await page.evaluate(
/* istanbul ignore next */ (selector) => /* istanbul ignore next */ (selector) =>
document.querySelector(selector) !== null, document.querySelector(selector) !== null,
constSelectors.LOGIN_MESSAGE_ERROR selectors.LOGIN_MESSAGE_ERROR
) )
) { ) {
let errorMessage = await page.evaluate( let errorMessage = await page.evaluate(
/* istanbul ignore next */ (selector) => /* istanbul ignore next */ (selector) =>
document.querySelector(selector).innerText, document.querySelector(selector).innerText,
constSelectors.LOGIN_MESSAGE_ERROR selectors.LOGIN_MESSAGE_ERROR
); );
if (errorMessage === "Incorrect password. Please try again.") { if (errorMessage === "Incorrect password. Please try again.") {
@ -505,33 +505,33 @@ async function getUserWatchedGameThreads(browser) {
await page.goto(constURLs.F95_WATCHED_THREADS); // Go to the thread page await page.goto(constURLs.F95_WATCHED_THREADS); // Go to the thread page
// Explicitly wait for the required items to load // Explicitly wait for the required items to load
await page.waitForSelector(constSelectors.WATCHED_THREAD_FILTER_POPUP_BUTTON); await page.waitForSelector(selectors.WATCHED_THREAD_FILTER_POPUP_BUTTON);
// Show the popup // Show the popup
await page.click(constSelectors.WATCHED_THREAD_FILTER_POPUP_BUTTON); await page.click(selectors.WATCHED_THREAD_FILTER_POPUP_BUTTON);
await page.waitForSelector(constSelectors.UNREAD_THREAD_CHECKBOX); await page.waitForSelector(selectors.UNREAD_THREAD_CHECKBOX);
await page.waitForSelector(constSelectors.ONLY_GAMES_THREAD_OPTION); await page.waitForSelector(selectors.ONLY_GAMES_THREAD_OPTION);
await page.waitForSelector(constSelectors.FILTER_THREADS_BUTTON); await page.waitForSelector(selectors.FILTER_THREADS_BUTTON);
// Set the filters // Set the filters
await page.evaluate( await page.evaluate(
/* istanbul ignore next */ (selector) => /* istanbul ignore next */ (selector) =>
document.querySelector(selector).removeAttribute("checked"), document.querySelector(selector).removeAttribute("checked"),
constSelectors.UNREAD_THREAD_CHECKBOX selectors.UNREAD_THREAD_CHECKBOX
); // Also read the threads already read ); // Also read the threads already read
await page.click(constSelectors.ONLY_GAMES_THREAD_OPTION); await page.click(selectors.ONLY_GAMES_THREAD_OPTION);
// Filter the threads // Filter the threads
await page.click(constSelectors.FILTER_THREADS_BUTTON); await page.click(selectors.FILTER_THREADS_BUTTON);
await page.waitForSelector(constSelectors.WATCHED_THREAD_URLS); await page.waitForSelector(selectors.WATCHED_THREAD_URLS);
// Get the threads urls // Get the threads urls
let urls = []; let urls = [];
let nextPageExists = false; let nextPageExists = false;
do { do {
// Get all the URLs // Get all the URLs
for (let handle of await page.$$(constSelectors.WATCHED_THREAD_URLS)) { for (let handle of await page.$$(selectors.WATCHED_THREAD_URLS)) {
let src = await page.evaluate( let src = await page.evaluate(
/* istanbul ignore next */ (element) => element.href, /* istanbul ignore next */ (element) => element.href,
handle handle
@ -543,13 +543,13 @@ async function getUserWatchedGameThreads(browser) {
nextPageExists = await page.evaluate( nextPageExists = await page.evaluate(
/* istanbul ignore next */ (selector) => document.querySelector(selector), /* istanbul ignore next */ (selector) => document.querySelector(selector),
constSelectors.WATCHED_THREAD_NEXT_PAGE selectors.WATCHED_THREAD_NEXT_PAGE
); );
// Click to next page // Click to next page
if (nextPageExists) { if (nextPageExists) {
await page.click(constSelectors.WATCHED_THREAD_NEXT_PAGE); await page.click(selectors.WATCHED_THREAD_NEXT_PAGE);
await page.waitForSelector(constSelectors.WATCHED_THREAD_URLS); await page.waitForSelector(selectors.WATCHED_THREAD_URLS);
} }
} while (nextPageExists); } while (nextPageExists);
@ -576,19 +576,19 @@ async function getSearchGameResults(browser, gamename) {
}); // Go to the search form and wait for it }); // Go to the search form and wait for it
// Explicitly wait for the required items to load // Explicitly wait for the required items to load
await page.waitForSelector(constSelectors.SEARCH_FORM_TEXTBOX); await page.waitForSelector(selectors.SEARCH_FORM_TEXTBOX);
await page.waitForSelector(constSelectors.TITLE_ONLY_CHECKBOX); await page.waitForSelector(selectors.TITLE_ONLY_CHECKBOX);
await page.waitForSelector(constSelectors.SEARCH_BUTTON); await page.waitForSelector(selectors.SEARCH_BUTTON);
await page.type(constSelectors.SEARCH_FORM_TEXTBOX, gamename); // Type the game we desire await page.type(selectors.SEARCH_FORM_TEXTBOX, gamename); // Type the game we desire
await page.click(constSelectors.TITLE_ONLY_CHECKBOX); // Select only the thread with the game in the titles await page.click(selectors.TITLE_ONLY_CHECKBOX); // Select only the thread with the game in the titles
await page.click(constSelectors.SEARCH_BUTTON); // Execute search await page.click(selectors.SEARCH_BUTTON); // Execute search
await page.waitForNavigation({ await page.waitForNavigation({
waitUntil: shared.WAIT_STATEMENT, waitUntil: shared.WAIT_STATEMENT,
}); // Wait for page to load }); // Wait for page to load
// Select all conversation titles // Select all conversation titles
let threadTitleList = await page.$$(constSelectors.THREAD_TITLE); let threadTitleList = await page.$$(selectors.THREAD_TITLE);
// For each title extract the info about the conversation // For each title extract the info about the conversation
if (shared.debug) console.log("Extracting info from conversation titles"); if (shared.debug) console.log("Extracting info from conversation titles");

813
coverage.lcov Normal file
View File

@ -0,0 +1,813 @@
TN:
SF:app\index.js
FN:34,(anonymous_0)
FN:42,(anonymous_1)
FN:51,(anonymous_2)
FN:59,(anonymous_3)
FN:67,(anonymous_4)
FN:88,(anonymous_5)
FN:139,(anonymous_6)
FN:192,(anonymous_7)
FN:213,(anonymous_8)
FN:252,(anonymous_9)
FN:302,(anonymous_10)
FN:320,loadCookies
FN:342,isCookieExpired
FN:378,loadValuesFromLatestPage
FN:412,getValuesFromLatestPage
FN:439,loginF95
FN:503,getUserWatchedGameThreads
FN:569,getSearchGameResults
FN:614,getOnlyGameThreads
FNF:19
FNH:15
FNDA:0,(anonymous_0)
FNDA:0,(anonymous_1)
FNDA:1,(anonymous_2)
FNDA:0,(anonymous_3)
FNDA:0,(anonymous_4)
FNDA:11,(anonymous_5)
FNDA:5,(anonymous_6)
FNDA:1,(anonymous_7)
FNDA:3,(anonymous_8)
FNDA:2,(anonymous_9)
FNDA:9,(anonymous_10)
FNDA:12,loadCookies
FNDA:49,isCookieExpired
FNDA:6,loadValuesFromLatestPage
FNDA:2,getValuesFromLatestPage
FNDA:5,loginF95
FNDA:1,getUserWatchedGameThreads
FNDA:2,getSearchGameResults
FNDA:12,getOnlyGameThreads
DA:4,1
DA:7,1
DA:10,1
DA:11,1
DA:12,1
DA:13,1
DA:14,1
DA:18,1
DA:19,1
DA:20,1
DA:21,1
DA:24,1
DA:25,1
DA:26,1
DA:34,1
DA:35,0
DA:42,1
DA:43,0
DA:51,1
DA:52,1
DA:59,1
DA:60,0
DA:67,1
DA:68,0
DA:71,0
DA:76,1
DA:88,1
DA:89,11
DA:90,1
DA:91,1
DA:92,1
DA:93,1
DA:94,1
DA:98,10
DA:99,10
DA:100,5
DA:101,5
DA:102,5
DA:103,5
DA:104,5
DA:105,5
DA:109,5
DA:110,0
DA:112,5
DA:113,5
DA:115,0
DA:116,0
DA:119,5
DA:120,5
DA:122,5
DA:124,2
DA:125,2
DA:127,3
DA:129,5
DA:130,5
DA:139,1
DA:140,5
DA:141,1
DA:142,1
DA:145,4
DA:148,4
DA:149,4
DA:151,0
DA:152,0
DA:155,4
DA:156,4
DA:159,3
DA:164,3
DA:165,3
DA:173,3
DA:174,3
DA:181,3
DA:182,3
DA:183,3
DA:192,1
DA:193,1
DA:194,0
DA:195,0
DA:198,1
DA:201,1
DA:202,0
DA:213,1
DA:214,3
DA:215,1
DA:216,1
DA:220,2
DA:221,2
DA:223,0
DA:224,0
DA:226,2
DA:229,2
DA:230,2
DA:232,4
DA:236,2
DA:237,2
DA:239,4
DA:240,2
DA:243,2
DA:244,2
DA:252,1
DA:253,2
DA:254,1
DA:255,1
DA:259,1
DA:260,1
DA:262,0
DA:263,0
DA:265,1
DA:266,1
DA:267,1
DA:270,1
DA:271,1
DA:273,1
DA:275,1
DA:281,1
DA:287,1
DA:288,1
DA:289,1
DA:290,1
DA:292,1
DA:293,1
DA:295,1
DA:302,1
DA:303,9
DA:304,3
DA:305,3
DA:307,6
DA:322,12
DA:324,7
DA:325,7
DA:328,7
DA:329,49
DA:333,7
DA:334,5
DA:344,49
DA:347,49
DA:349,49
DA:351,49
DA:353,49
DA:354,0
DA:355,0
DA:358,0
DA:362,49
DA:385,6
DA:386,6
DA:387,4
DA:388,4
DA:392,2
DA:393,0
DA:394,2
DA:399,2
DA:400,2
DA:413,2
DA:415,2
DA:416,2
DA:418,2
DA:419,17
DA:424,17
DA:426,2
DA:440,5
DA:441,5
DA:444,5
DA:445,5
DA:446,5
DA:447,5
DA:448,5
DA:449,5
DA:450,5
DA:455,5
DA:458,5
DA:465,5
DA:466,2
DA:467,2
DA:468,2
DA:471,3
DA:478,3
DA:484,3
DA:485,1
DA:486,2
DA:490,2
DA:491,0
DA:492,0
DA:494,5
DA:495,5
DA:504,1
DA:505,1
DA:508,1
DA:511,1
DA:512,1
DA:513,1
DA:514,1
DA:517,1
DA:523,1
DA:526,1
DA:527,1
DA:530,1
DA:531,1
DA:532,1
DA:534,3
DA:535,46
DA:540,46
DA:541,46
DA:544,3
DA:550,3
DA:551,2
DA:552,2
DA:556,1
DA:557,1
DA:570,2
DA:572,2
DA:573,2
DA:574,2
DA:579,2
DA:580,2
DA:581,2
DA:583,2
DA:584,2
DA:585,2
DA:586,2
DA:591,2
DA:594,2
DA:595,2
DA:596,2
DA:597,12
DA:600,12
DA:602,2
DA:603,2
DA:605,2
DA:615,12
DA:618,12
DA:622,12
DA:625,12
DA:627,16
DA:631,16
DA:634,16
DA:636,4
LF:236
LH:213
BRDA:71,0,0,0
BRDA:71,0,1,0
BRDA:89,1,0,1
BRDA:89,1,1,10
BRDA:90,2,0,0
BRDA:90,2,1,1
BRDA:99,3,0,5
BRDA:99,3,1,5
BRDA:100,4,0,0
BRDA:100,4,1,5
BRDA:109,5,0,0
BRDA:109,5,1,5
BRDA:113,6,0,5
BRDA:113,6,1,0
BRDA:115,7,0,0
BRDA:115,7,1,0
BRDA:122,8,0,2
BRDA:122,8,1,3
BRDA:125,9,0,0
BRDA:125,9,1,2
BRDA:129,10,0,5
BRDA:129,10,1,0
BRDA:140,11,0,1
BRDA:140,11,1,4
BRDA:145,12,0,0
BRDA:145,12,1,4
BRDA:149,13,0,4
BRDA:149,13,1,0
BRDA:151,14,0,0
BRDA:151,14,1,0
BRDA:181,15,0,3
BRDA:181,15,1,0
BRDA:182,16,0,0
BRDA:182,16,1,3
BRDA:193,17,0,0
BRDA:193,17,1,1
BRDA:201,18,0,1
BRDA:201,18,1,0
BRDA:214,19,0,1
BRDA:214,19,1,2
BRDA:221,20,0,2
BRDA:221,20,1,0
BRDA:223,21,0,0
BRDA:223,21,1,0
BRDA:239,22,0,2
BRDA:239,22,1,2
BRDA:239,23,0,4
BRDA:239,23,1,2
BRDA:243,24,0,2
BRDA:243,24,1,0
BRDA:253,25,0,1
BRDA:253,25,1,1
BRDA:260,26,0,1
BRDA:260,26,1,0
BRDA:262,27,0,0
BRDA:262,27,1,0
BRDA:289,28,0,1
BRDA:289,28,1,0
BRDA:293,29,0,1
BRDA:293,29,1,0
BRDA:303,30,0,3
BRDA:303,30,1,6
BRDA:322,31,0,7
BRDA:322,31,1,5
BRDA:329,32,0,0
BRDA:329,32,1,49
BRDA:349,33,0,49
BRDA:349,33,1,0
BRDA:353,34,0,0
BRDA:353,34,1,49
BRDA:354,35,0,0
BRDA:354,35,1,0
BRDA:385,36,0,0
BRDA:385,36,1,6
BRDA:386,37,0,4
BRDA:386,37,1,2
BRDA:392,38,0,0
BRDA:392,38,1,2
BRDA:413,39,0,0
BRDA:413,39,1,2
BRDA:465,40,0,2
BRDA:465,40,1,3
BRDA:471,41,0,3
BRDA:471,41,1,0
BRDA:484,42,0,1
BRDA:484,42,1,2
BRDA:486,43,0,2
BRDA:486,43,1,0
BRDA:550,44,0,2
BRDA:550,44,1,1
BRDA:570,45,0,0
BRDA:570,45,1,2
BRDA:594,46,0,0
BRDA:594,46,1,2
BRDA:600,47,0,4
BRDA:600,47,1,8
BRDA:602,48,0,0
BRDA:602,48,1,2
BRDA:634,49,0,8
BRDA:634,49,1,8
BRF:100
BRH:60
end_of_record
TN:
SF:app\scripts\game-scraper.js
FN:23,(anonymous_0)
FN:75,getOverview
FN:90,getMainPostStructuredText
FN:105,getGameAuthor
FN:127,parseConversationPage
FN:154,getGamePreviewSource
FN:173,getGameTitle
FN:192,getGameTags
FN:211,parsePrefixes
FN:238,getGameDownloadLink
FN:287,extractGameHostingData
FNF:11
FNH:11
FNDA:4,(anonymous_0)
FNDA:4,getOverview
FNDA:4,getMainPostStructuredText
FNDA:4,getGameAuthor
FNDA:4,parseConversationPage
FNDA:4,getGamePreviewSource
FNDA:4,getGameTitle
FNDA:4,getGameTags
FNDA:4,parsePrefixes
FNDA:4,getGameDownloadLink
FNDA:8,extractGameHostingData
DA:4,1
DA:5,1
DA:6,1
DA:9,1
DA:10,1
DA:11,1
DA:12,1
DA:13,1
DA:14,1
DA:23,1
DA:24,4
DA:27,4
DA:28,4
DA:29,4
DA:31,4
DA:32,4
DA:33,4
DA:39,4
DA:40,4
DA:41,4
DA:42,4
DA:43,4
DA:44,4
DA:45,4
DA:46,4
DA:47,4
DA:48,4
DA:51,4
DA:52,4
DA:53,4
DA:54,4
DA:55,4
DA:56,4
DA:57,4
DA:58,4
DA:59,4
DA:61,4
DA:62,4
DA:63,4
DA:78,4
DA:79,2
DA:80,4
DA:92,4
DA:95,4
DA:96,4
DA:107,4
DA:110,4
DA:113,4
DA:116,4
DA:117,4
DA:128,4
DA:131,4
DA:132,4
DA:134,838
DA:137,228
DA:138,228
DA:139,228
DA:142,228
DA:145,4
DA:155,4
DA:164,4
DA:175,4
DA:178,4
DA:181,4
DA:182,4
DA:183,4
DA:193,4
DA:196,4
DA:197,28
DA:198,28
DA:200,4
DA:212,4
DA:215,4
DA:216,4
DA:217,8
DA:220,8
DA:223,8
DA:224,8
DA:227,4
DA:229,4
DA:240,4
DA:243,4
DA:246,4
DA:247,4
DA:252,4
DA:253,4
DA:254,16
DA:255,14
DA:258,14
DA:259,86
DA:260,2
DA:261,2
DA:265,4
DA:268,2
DA:271,2
DA:272,2
DA:273,8
DA:274,8
DA:276,2
DA:288,8
DA:289,8
DA:290,8
DA:291,8
DA:292,8
DA:293,8
DA:294,8
DA:297,8
DA:298,8
DA:299,6
DA:302,6
DA:307,6
DA:311,6
DA:313,6
DA:314,6
DA:315,6
DA:317,30
DA:320,24
DA:321,24
DA:322,24
DA:325,24
DA:326,24
DA:327,24
DA:329,24
DA:330,24
DA:331,24
DA:332,24
DA:333,24
DA:335,24
DA:338,6
LF:129
LH:129
BRDA:24,0,0,0
BRDA:24,0,1,4
BRDA:27,1,0,0
BRDA:27,1,1,4
BRDA:29,2,0,0
BRDA:29,2,1,4
BRDA:56,3,0,2
BRDA:56,3,1,2
BRDA:57,4,0,2
BRDA:57,4,1,2
BRDA:62,5,0,0
BRDA:62,5,1,4
BRDA:78,6,0,2
BRDA:78,6,1,2
BRDA:134,7,0,610
BRDA:134,7,1,228
BRDA:142,8,0,124
BRDA:142,8,1,104
BRDA:164,9,0,3
BRDA:164,9,1,1
BRDA:223,10,0,0
BRDA:223,10,1,8
BRDA:224,11,0,4
BRDA:224,11,1,4
BRDA:227,12,0,2
BRDA:227,12,1,2
BRDA:247,13,0,0
BRDA:247,13,1,4
BRDA:254,14,0,2
BRDA:254,14,1,14
BRDA:259,15,0,2
BRDA:259,15,1,84
BRDA:265,16,0,2
BRDA:265,16,1,2
BRDA:298,17,0,2
BRDA:298,17,1,6
BRDA:307,18,0,0
BRDA:307,18,1,6
BRDA:317,19,0,6
BRDA:317,19,1,24
BRDA:329,20,0,24
BRDA:329,20,1,0
BRF:42
BRH:34
end_of_record
TN:
SF:app\scripts\puppeteer-helper.js
FN:15,(anonymous_0)
FN:31,(anonymous_1)
FN:37,(anonymous_2)
FNF:3
FNH:3
FNDA:12,(anonymous_0)
FNDA:17,(anonymous_1)
FNDA:1962,(anonymous_2)
DA:4,1
DA:7,1
DA:15,1
DA:17,12
DA:21,12
DA:31,1
DA:33,17
DA:36,17
DA:37,17
DA:38,1962
DA:41,1247
DA:45,17
DA:47,17
DA:49,17
LF:14
LH:14
BRDA:38,0,0,715
BRDA:38,0,1,1247
BRF:2
BRH:2
end_of_record
TN:
SF:app\scripts\shared.js
FN:59,(anonymous_0)
FN:66,(anonymous_1)
FN:73,(anonymous_2)
FN:80,(anonymous_3)
FN:87,(anonymous_4)
FN:94,(anonymous_5)
FN:101,(anonymous_6)
FN:108,(anonymous_7)
FN:115,(anonymous_8)
FN:123,(anonymous_9)
FN:129,(anonymous_10)
FN:133,(anonymous_11)
FN:137,(anonymous_12)
FN:141,(anonymous_13)
FN:145,(anonymous_14)
FN:149,(anonymous_15)
FN:153,(anonymous_16)
FNF:17
FNH:14
FNDA:56,(anonymous_0)
FNDA:31,(anonymous_1)
FNDA:21,(anonymous_2)
FNDA:8,(anonymous_3)
FNDA:8,(anonymous_4)
FNDA:0,(anonymous_5)
FNDA:21,(anonymous_6)
FNDA:3,(anonymous_7)
FNDA:3,(anonymous_8)
FNDA:23,(anonymous_9)
FNDA:12,(anonymous_10)
FNDA:3,(anonymous_11)
FNDA:3,(anonymous_12)
FNDA:0,(anonymous_13)
FNDA:0,(anonymous_14)
FNDA:16,(anonymous_15)
FNDA:1,(anonymous_16)
DA:4,1
DA:15,1
DA:20,1
DA:25,1
DA:30,1
DA:35,1
DA:40,1
DA:45,1
DA:51,1
DA:60,56
DA:67,31
DA:74,21
DA:81,8
DA:88,8
DA:95,0
DA:102,21
DA:109,3
DA:116,3
DA:124,23
DA:130,12
DA:134,3
DA:138,3
DA:142,0
DA:146,0
DA:150,16
DA:154,1
DA:159,1
LF:27
LH:24
BRF:0
BRH:0
end_of_record
TN:
SF:app\scripts\urls-helper.js
FN:12,(anonymous_0)
FN:23,(anonymous_1)
FNF:2
FNH:2
FNDA:4,(anonymous_0)
FNDA:29,(anonymous_1)
DA:4,1
DA:12,1
DA:13,4
DA:14,0
DA:23,1
DA:24,29
DA:25,29
DA:26,28
DA:28,1
LF:9
LH:8
BRDA:13,0,0,4
BRDA:13,0,1,0
BRF:2
BRH:1
end_of_record
TN:
SF:app\scripts\classes\game-download.js
FN:4,(anonymous_0)
FN:31,(anonymous_1)
FN:37,downloadMEGA
FN:41,downloadNOPY
FNF:4
FNH:1
FNDA:24,(anonymous_0)
FNDA:0,(anonymous_1)
FNDA:0,downloadMEGA
FNDA:0,downloadNOPY
DA:10,24
DA:16,24
DA:23,24
DA:35,1
LF:4
LH:4
BRF:0
BRH:0
end_of_record
TN:
SF:app\scripts\classes\game-info.js
FN:6,(anonymous_0)
FN:86,(anonymous_1)
FN:109,(anonymous_2)
FNF:3
FNH:1
FNDA:4,(anonymous_0)
FNDA:0,(anonymous_1)
FNDA:0,(anonymous_2)
DA:3,1
DA:12,4
DA:17,4
DA:22,4
DA:27,4
DA:32,4
DA:37,4
DA:42,4
DA:47,4
DA:52,4
DA:57,4
DA:62,4
DA:67,4
DA:72,4
DA:79,4
DA:87,0
DA:110,0
DA:113,1
LF:18
LH:16
BRF:0
BRH:0
end_of_record
TN:
SF:app\scripts\classes\login-result.js
FN:7,(anonymous_0)
FNF:1
FNH:1
FNDA:11,(anonymous_0)
DA:12,11
DA:17,11
DA:20,1
LF:3
LH:3
BRF:0
BRH:0
end_of_record
TN:
SF:app\scripts\classes\user-data.js
FN:7,(anonymous_0)
FNF:1
FNH:1
FNDA:1,(anonymous_0)
DA:12,1
DA:17,1
DA:22,1
DA:26,1
LF:4
LH:4
BRF:0
BRH:0
end_of_record
TN:
SF:app\scripts\costants\css-selectors.js
FNF:0
FNH:0
DA:1,1
LF:1
LH:1
BRF:0
BRH:0
end_of_record
TN:
SF:app\scripts\costants\urls.js
FNF:0
FNH:0
DA:1,1
LF:1
LH:1
BRF:0
BRH:0
end_of_record

View File

@ -13,7 +13,8 @@
"node": ">=10.0" "node": ">=10.0"
}, },
"scripts": { "scripts": {
"unit-test": "nyc --reporter=text mocha", "unit-test-mocha": "nyc --reporter=text mocha",
"report-coverage": "nyc report --reporter=text-lcov > coverage.lcov && codecov -t 38ad72bf-a29d-4c2e-9827-96cbe037afd2",
"test": "node ./test/test.js", "test": "node ./test/test.js",
"deploy": "npm pack" "deploy": "npm pack"
}, },