From 5fd996c9cc7b6eaaa6db1809df734f2bb9ac54f2 Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Wed, 6 Jun 2018 12:25:10 +0200
Subject: [PATCH] refactor: use isSingleVersion not isRange

---
 lib/versioning/pep440/index.js                       |  3 ---
 lib/versioning/semver/index.js                       |  3 ---
 lib/workers/repository/process/lookup/index.js       | 12 ++++++------
 test/versioning/pep440.spec.js                       | 11 -----------
 test/versioning/semver.spec.js                       | 11 -----------
 .../process/lookup/__snapshots__/index.spec.js.snap  |  2 +-
 6 files changed, 7 insertions(+), 35 deletions(-)

diff --git a/lib/versioning/pep440/index.js b/lib/versioning/pep440/index.js
index aaf904a38f..1b1aca5275 100644
--- a/lib/versioning/pep440/index.js
+++ b/lib/versioning/pep440/index.js
@@ -22,8 +22,6 @@ const isStable = input => {
   return !version.is_prerelease;
 };
 
-const isRange = input => isValid(input) && !isVersion(input);
-
 // If this is left as an alias, inputs like "17.04.0" throw errors
 const isValid = input => validRange(input);
 
@@ -47,7 +45,6 @@ module.exports = {
   getMinor,
   isGreaterThan,
   isSingleVersion,
-  isRange,
   isStable,
   isValid,
   isVersion,
diff --git a/lib/versioning/semver/index.js b/lib/versioning/semver/index.js
index 716624d65d..9668b2b14f 100644
--- a/lib/versioning/semver/index.js
+++ b/lib/versioning/semver/index.js
@@ -24,8 +24,6 @@ const getMajor = input => {
   return semver.major(version);
 };
 
-const isRange = input => isValid(input) && !isVersion(input);
-
 // If this is left as an alias, inputs like "17.04.0" throw errors
 const isValid = input => validRange(input);
 
@@ -39,7 +37,6 @@ module.exports = {
   getMinor,
   isGreaterThan,
   isLessThanRange,
-  isRange,
   isSingleVersion,
   isStable,
   isValid,
diff --git a/lib/workers/repository/process/lookup/index.js b/lib/workers/repository/process/lookup/index.js
index 45caccb2b9..ef58b90c34 100644
--- a/lib/workers/repository/process/lookup/index.js
+++ b/lib/workers/repository/process/lookup/index.js
@@ -18,7 +18,7 @@ async function lookupUpdates(config) {
     getMajor,
     getMinor,
     isGreaterThan,
-    isRange,
+    isSingleVersion,
     isVersion,
     matches,
     getNewValue,
@@ -93,11 +93,11 @@ async function lookupUpdates(config) {
   }
   const rangeStrategy = getRangeStrategy(config);
   const fromVersion = getFromVersion(config, rangeStrategy, allVersions);
-  if (isRange(currentValue) && rangeStrategy === 'pin') {
+  if (rangeStrategy === 'pin' && !isSingleVersion(currentValue)) {
     updates.push({
       type: 'pin',
       isPin: true,
-      newValue: fromVersion,
+      newValue: getNewValue(config, fromVersion, fromVersion),
       newMajor: getMajor(fromVersion),
     });
   }
@@ -121,7 +121,7 @@ async function lookupUpdates(config) {
     update.newMajor = getMajor(toVersion);
     update.newMinor = getMinor(toVersion);
     update.type = getType(config, fromVersion, toVersion);
-    if (isRange(update.newValue)) {
+    if (!isVersion(update.newValue)) {
       update.isRange = true;
     }
 
@@ -183,10 +183,10 @@ function getBucket(config, update) {
 
 function getFromVersion(config, rangeStrategy, allVersions) {
   const { currentValue, lockedVersion, versionScheme } = config;
-  const { isRange, maxSatisfyingVersion, minSatisfyingVersion } = versioning(
+  const { isVersion, maxSatisfyingVersion, minSatisfyingVersion } = versioning(
     versionScheme
   );
-  if (!isRange(currentValue)) {
+  if (isVersion(currentValue)) {
     return currentValue;
   }
   logger.trace(`currentValue ${currentValue} is range`);
diff --git a/test/versioning/pep440.spec.js b/test/versioning/pep440.spec.js
index 8e945b5901..df6ec7d434 100644
--- a/test/versioning/pep440.spec.js
+++ b/test/versioning/pep440.spec.js
@@ -23,17 +23,6 @@ describe('pep440.isValid(input)', () => {
     ).toBe(false);
   });
 });
-describe('pep440.isRange(input)', () => {
-  it('rejects simple pep440', () => {
-    expect(!!pep440.isRange('1.2.3')).toBe(false);
-  });
-  it('accepts tilde', () => {
-    expect(!!pep440.isRange('~=1.2.3')).toBe(true);
-  });
-  it('accepts glob', () => {
-    expect(!!pep440.isRange('==1.2.*')).toBe(true);
-  });
-});
 
 describe('pep440.isStable(version)', () => {
   it('returns correct value', () => {
diff --git a/test/versioning/semver.spec.js b/test/versioning/semver.spec.js
index e2a8a0f1e0..7fb7ac378b 100644
--- a/test/versioning/semver.spec.js
+++ b/test/versioning/semver.spec.js
@@ -26,17 +26,6 @@ describe('semver.isValid(input)', () => {
     ).toBe(false);
   });
 });
-describe('semver.isRange(input)', () => {
-  it('rejects simple semver', () => {
-    expect(!!semver.isRange('1.2.3')).toBe(false);
-  });
-  it('accepts tilde', () => {
-    expect(!!semver.isRange('~1.2.3')).toBe(true);
-  });
-  it('accepts caret', () => {
-    expect(!!semver.isRange('^1.2.3')).toBe(true);
-  });
-});
 describe('semver.isSingleVersion()', () => {
   it('returns true if naked version', () => {
     expect(!!semver.isSingleVersion('1.2.3')).toBe(true);
diff --git a/test/workers/repository/process/lookup/__snapshots__/index.spec.js.snap b/test/workers/repository/process/lookup/__snapshots__/index.spec.js.snap
index ac1a4a521a..3a2aed0f40 100644
--- a/test/workers/repository/process/lookup/__snapshots__/index.spec.js.snap
+++ b/test/workers/repository/process/lookup/__snapshots__/index.spec.js.snap
@@ -42,7 +42,7 @@ Array [
   Object {
     "isPin": true,
     "newMajor": 0,
-    "newValue": "0.9.4",
+    "newValue": "==0.9.4",
     "repositoryUrl": "https://github.com/kriskowal/q",
     "type": "pin",
   },
-- 
GitLab