From 177883a2e1ec82f08ceed9b14512c39fabd17e41 Mon Sep 17 00:00:00 2001 From: Saransh Date: Tue, 15 Dec 2020 11:55:12 +0530 Subject: [PATCH 1/2] using last stable version when using compact config --- lib/configParser.js | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/lib/configParser.js b/lib/configParser.js index 6afdb1b..7ef7e1d 100644 --- a/lib/configParser.js +++ b/lib/configParser.js @@ -36,13 +36,17 @@ var ConfigParser = { return parseFloat(a) - parseFloat(b); }); if (verStr === 'current' || verStr === 'latest') { - return filteredBrowsers[filteredBrowsers.length - 1]; + return ConfigParser.checkIfLatestFlagApplicable(browserObject) ? 'latest' : filteredBrowsers[filteredBrowsers.length - 1]; } else if (verStr === 'previous') { - return filteredBrowsers[filteredBrowsers.length - 2]; + return ConfigParser.checkIfLatestFlagApplicable(browserObject) ? 'latest-1' : filteredBrowsers[filteredBrowsers.length - 2]; } }, + checkIfLatestFlagApplicable: function(browserObject) { + return !browserObject.mobile && ['chrome', 'firefox', 'edge'].includes(browserObject.browser) + }, + populateOsAndOsVersion: function(browserObject) { if (!(browserObject.os && browserObject.os_version)) { if (browserObject.mobile) { @@ -56,13 +60,18 @@ var ConfigParser = { else { var windowsFiltered = ConfigParser.bsBrowsers.filter(function(currentValue) { - return currentValue.os === 'Windows' && currentValue.browser_version.match(/metro/i) == null && currentValue.browser === browserObject.browser && parseFloat(currentValue.browser_version).toPrecision(4) === parseFloat(browserObject.browser_version).toPrecision(4); + return currentValue.os === 'Windows' && currentValue.browser_version.match(/metro/i) == null && currentValue.browser === browserObject.browser && ((browserObject.browser_version && browserObject.browser_version.indexOf('latest') > -1) || parseFloat(currentValue.browser_version).toPrecision(4) === parseFloat(browserObject.browser_version).toPrecision(4)); }); var osxFiltered = ConfigParser.bsBrowsers.filter(function(currentValue) { - return currentValue.os === 'OS X' && currentValue.browser === browserObject.browser && parseFloat(currentValue.browser_version).toPrecision(4) === parseFloat(browserObject.browser_version).toPrecision(4); + return currentValue.os === 'OS X' && currentValue.browser === browserObject.browser && ((browserObject.browser_version && browserObject.browser_version.indexOf('latest')) > -1 || parseFloat(currentValue.browser_version).toPrecision(4) === parseFloat(browserObject.browser_version).toPrecision(4)); }); - browserObject = windowsFiltered.length > 0 ? windowsFiltered[Math.floor(Math.random() * windowsFiltered.length)] : osxFiltered[Math.floor(Math.random() * osxFiltered.length)]; + + let filteredObject = windowsFiltered.length > 0 ? windowsFiltered[Math.floor(Math.random() * windowsFiltered.length)] : osxFiltered[Math.floor(Math.random() * osxFiltered.length)]; + if (browserObject.browser_version.indexOf('latest') > -1) { + filteredObject.browser_version = browserObject.browser_version + } + browserObject = filteredObject } } From d1356675a61cf1e965733e2bb2362fc43258f4a9 Mon Sep 17 00:00:00 2001 From: Saransh Date: Tue, 15 Dec 2020 14:24:53 +0530 Subject: [PATCH 2/2] sanity --- lib/configParser.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/configParser.js b/lib/configParser.js index 7ef7e1d..7e440f7 100644 --- a/lib/configParser.js +++ b/lib/configParser.js @@ -44,7 +44,7 @@ var ConfigParser = { }, checkIfLatestFlagApplicable: function(browserObject) { - return !browserObject.mobile && ['chrome', 'firefox', 'edge'].includes(browserObject.browser) + return !browserObject.mobile && browserObject.browser && ['chrome', 'firefox', 'edge'].includes(browserObject.browser.toLowerCase()); }, populateOsAndOsVersion: function(browserObject) { @@ -69,9 +69,9 @@ var ConfigParser = { let filteredObject = windowsFiltered.length > 0 ? windowsFiltered[Math.floor(Math.random() * windowsFiltered.length)] : osxFiltered[Math.floor(Math.random() * osxFiltered.length)]; if (browserObject.browser_version.indexOf('latest') > -1) { - filteredObject.browser_version = browserObject.browser_version + filteredObject.browser_version = browserObject.browser_version; } - browserObject = filteredObject + browserObject = filteredObject; } }