From 4653ee9e42fd10c1aa42620af8677923978a725b Mon Sep 17 00:00:00 2001
From: MICHAEL JACKSON <mjijackson@gmail.com>
Date: Sat, 12 Aug 2017 09:40:53 -0700
Subject: [PATCH] Fix failing test

---
 server/PackageURL.js      | 12 ++++++++----
 server/PackageURL.test.js |  6 +-----
 2 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/server/PackageURL.js b/server/PackageURL.js
index 38e7b0b..417dc63 100644
--- a/server/PackageURL.js
+++ b/server/PackageURL.js
@@ -3,11 +3,15 @@ const url = require('url')
 const URLFormat = /^\/((?:@[^\/@]+\/)?[^\/@]+)(?:@([^\/]+))?(\/.*)?$/
 
 function decodeParam(param) {
-  try {
-    return decodeURIComponent(param)
-  } catch (error) {
-    return null
+  if (param) {
+    try {
+      return decodeURIComponent(param)
+    } catch (error) {
+      // Ignore invalid params.
+    }
   }
+
+  return ''
 }
 
 function parsePackageURL(packageURL) {
diff --git a/server/PackageURL.test.js b/server/PackageURL.test.js
index b41efd8..75becf4 100644
--- a/server/PackageURL.test.js
+++ b/server/PackageURL.test.js
@@ -1,4 +1,4 @@
-const { parsePackageURL } = require('./PackageURL').parse
+const parsePackageURL = require('./PackageURL').parse
 
 describe('parsePackageURL', () => {
   it('parses plain packages', () => {
@@ -81,8 +81,4 @@ describe('parsePackageURL', () => {
   it('returns null for invalid pathnames', () => {
     expect(parsePackageURL('history')).toBe(null)
   })
-
-  it('returns null for invalid query parameters', () => {
-    expect(parsePackageURL('/query-string@5.0.0/index.js?invalid')).toBe(null)
-  })
 })