diff --git a/spec/cordova/plugin/add.spec.js b/spec/cordova/plugin/add.spec.js index ec96cf60f..7d828fad8 100644 --- a/spec/cordova/plugin/add.spec.js +++ b/spec/cordova/plugin/add.spec.js @@ -449,6 +449,12 @@ describe('cordova/plugin/add', function () { it('should return an array with failed platform requirements ', function () { expect(add.getFailedRequirements({ 'cordova-android': '>=6.0.0' }, {}, { android: '5.5.0' }, '7.0.0')).toEqual([{ dependency: 'cordova-android', installed: '5.5.0', required: '>=6.0.0' }]); }); + it('should treat prerelease platform versions as the matching release version', function () { + expect(add.getFailedRequirements({ 'cordova-ios': '>=7.0.0' }, {}, { ios: '8.0.2-dev.0' }, '12.0.0').length).toBe(0); + }); + it('should return failed platform requirements for prerelease versions below minimum', function () { + expect(add.getFailedRequirements({ 'cordova-ios': '>=7.0.0' }, {}, { ios: '6.9.9-dev.0' }, '12.0.0')).toEqual([{ dependency: 'cordova-ios', installed: '6.9.9-dev.0', required: '>=7.0.0' }]); + }); }); describe('listUnmetRequirements helper method', function () { it('should emit warnings for failed requirements', function () { diff --git a/src/cordova/plugin/add.js b/src/cordova/plugin/add.js index 91af02a5e..e820c5a3c 100644 --- a/src/cordova/plugin/add.js +++ b/src/cordova/plugin/add.js @@ -518,7 +518,7 @@ function getFailedRequirements (reqs, pluginMap, platformMap, cordovaVersion) { } else if (trimmedReq.indexOf('cordova-') === 0) { // Might be a platform constraint const platform = trimmedReq.substring(8); - if (platformMap[platform] && !semver.satisfies(platformMap[platform], reqs[req])) { + if (platformMap[platform] && !semver.satisfies(platformMap[platform], reqs[req], { loose: true, includePrerelease: true })) { badInstalledVersion = platformMap[platform]; } }