Skip to content

Commit 177883a

Browse files
committed
using last stable version when using compact config
1 parent d4bfe2f commit 177883a

File tree

1 file changed

+14
-5
lines changed

1 file changed

+14
-5
lines changed

lib/configParser.js

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,17 @@ var ConfigParser = {
3636
return parseFloat(a) - parseFloat(b);
3737
});
3838
if (verStr === 'current' || verStr === 'latest') {
39-
return filteredBrowsers[filteredBrowsers.length - 1];
39+
return ConfigParser.checkIfLatestFlagApplicable(browserObject) ? 'latest' : filteredBrowsers[filteredBrowsers.length - 1];
4040
}
4141
else if (verStr === 'previous') {
42-
return filteredBrowsers[filteredBrowsers.length - 2];
42+
return ConfigParser.checkIfLatestFlagApplicable(browserObject) ? 'latest-1' : filteredBrowsers[filteredBrowsers.length - 2];
4343
}
4444
},
4545

46+
checkIfLatestFlagApplicable: function(browserObject) {
47+
return !browserObject.mobile && ['chrome', 'firefox', 'edge'].includes(browserObject.browser)
48+
},
49+
4650
populateOsAndOsVersion: function(browserObject) {
4751
if (!(browserObject.os && browserObject.os_version)) {
4852
if (browserObject.mobile) {
@@ -56,13 +60,18 @@ var ConfigParser = {
5660
else {
5761

5862
var windowsFiltered = ConfigParser.bsBrowsers.filter(function(currentValue) {
59-
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);
63+
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));
6064
});
6165

6266
var osxFiltered = ConfigParser.bsBrowsers.filter(function(currentValue) {
63-
return currentValue.os === 'OS X' && currentValue.browser === browserObject.browser && parseFloat(currentValue.browser_version).toPrecision(4) === parseFloat(browserObject.browser_version).toPrecision(4);
67+
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));
6468
});
65-
browserObject = windowsFiltered.length > 0 ? windowsFiltered[Math.floor(Math.random() * windowsFiltered.length)] : osxFiltered[Math.floor(Math.random() * osxFiltered.length)];
69+
70+
let filteredObject = windowsFiltered.length > 0 ? windowsFiltered[Math.floor(Math.random() * windowsFiltered.length)] : osxFiltered[Math.floor(Math.random() * osxFiltered.length)];
71+
if (browserObject.browser_version.indexOf('latest') > -1) {
72+
filteredObject.browser_version = browserObject.browser_version
73+
}
74+
browserObject = filteredObject
6675
}
6776

6877
}

0 commit comments

Comments
 (0)