Add remote URL fetching to `yarn validate --url`
authorJuan Corona <juan.carlos.corona.r@gmail.com>
Wed, 10 Oct 2018 10:09:36 +0000 (12:09 +0200)
committerBigBlueHat <byoung@bigbluehat.com>
Fri, 12 Oct 2018 16:19:25 +0000 (12:19 -0400)
package.json
test/data-model.mjs
yarn.lock

index 3d12dc4..2e633ed 100644 (file)
@@ -52,6 +52,7 @@
     "mocha": "^5.0.5",
     "mocha-loader": "^1.1.3",
     "multi-entry-loader": "^1.1.2",
+    "node-fetch": "^2.2.0",
     "nyc": "^11.6.0",
     "prettier": "^1.11.1",
     "rimraf": "^2.6.2",
index 3c7fc47..ef99e72 100644 (file)
@@ -2,6 +2,7 @@
 
 import fs from 'fs';
 import URL from 'url';
+import fetch from 'node-fetch';
 
 import Ajv from 'ajv';
 const ajv = new Ajv({ schemaId: 'auto' });
@@ -40,14 +41,15 @@ const musts = JSON.parse(
 describe('Test JSON against Schemas', () => {
   let data = '';
 
-  before(function() {
+  before(async function() {
     if (!found_url) {
       this.skip();
     } else {
       // load the data from the file or URL
       let url_parsed = URL.parse(url);
       if (url_parsed.path !== url_parsed.href) {
-        // TODO: GET the URL's JSON and use that
+        const data_response = await fetch(url_parsed.href);
+        data = await data_response.json();
       } else {
         // assume we have a local file and use that
         data = JSON.parse(fs.readFileSync(url_parsed.path, 'utf8'));
index 2364d0a..849d2f1 100644 (file)
--- a/yarn.lock
+++ b/yarn.lock
@@ -4648,6 +4648,10 @@ neo-async@^2.5.0:
   version "2.5.1"
   resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.5.1.tgz#acb909e327b1e87ec9ef15f41b8a269512ad41ee"
 
+node-fetch@^2.2.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.2.0.tgz#4ee79bde909262f9775f731e3656d0db55ced5b5"
+
 node-libs-browser@^2.0.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df"