From b01f7e64caf6870dc21694d90c75a452d8261d13 Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Mon, 7 Jan 2019 23:56:18 +0100
Subject: [PATCH] fix: improve versioning test

---
 lib/versioning/cargo/index.js |  5 ++---
 test/versioning/index.spec.js | 20 +++++++++++++++-----
 2 files changed, 17 insertions(+), 8 deletions(-)

diff --git a/lib/versioning/cargo/index.js b/lib/versioning/cargo/index.js
index de178a7acf..063c2e451d 100644
--- a/lib/versioning/cargo/index.js
+++ b/lib/versioning/cargo/index.js
@@ -86,12 +86,11 @@ function getNewValue(currentValue, rangeStrategy, fromVersion, toVersion) {
 
 module.exports = {
   ...npm,
+  getNewValue,
   isLessThanRange,
+  isSingleVersion,
   isValid,
   matches,
   maxSatisfyingVersion,
   minSatisfyingVersion,
-  isSingleVersion,
-  cargo2npm,
-  getNewValue,
 };
diff --git a/test/versioning/index.spec.js b/test/versioning/index.spec.js
index 0f4e8e885e..c2dc5c00cc 100644
--- a/test/versioning/index.spec.js
+++ b/test/versioning/index.spec.js
@@ -1,4 +1,7 @@
 const versioning = require('../../lib/versioning');
+const supportedSchemes = require('../../lib/config/definitions')
+  .getOptions()
+  .find(option => option.name === 'versionScheme').allowedValues;
 
 describe('versioning.get(versionScheme)', () => {
   it('should fallback to semver', () => {
@@ -7,10 +10,17 @@ describe('versioning.get(versionScheme)', () => {
   });
 
   it('should return the same interface', () => {
-    const semverApi = Object.keys(versioning.get('semver'));
-    const pep440Api = Object.keys(versioning.get('pep440')).concat(
-      'isLessThanRange'
-    );
-    expect(pep440Api.sort()).toEqual(semverApi.sort());
+    const optionalFunctions = ['isLessThanRange', 'valueToVersion'];
+    const npmApi = Object.keys(versioning.get('semver'))
+      .filter(val => !optionalFunctions.includes(val))
+      .sort();
+    for (const supportedScheme of supportedSchemes.filter(
+      scheme => scheme !== 'npm'
+    )) {
+      const schemeKeys = Object.keys(versioning.get(supportedScheme))
+        .filter(val => !optionalFunctions.includes(val))
+        .sort();
+      expect(schemeKeys).toEqual(npmApi);
+    }
   });
 });
-- 
GitLab