update devDependencies, update tests for new validator, fixes for validation issues
[squeep-indie-auther] / test / src / template / admin-html.js
index 4c9e7a77fecb2f34370475470bf1de6422dbeea4..8f5a6c24523f74629ebb6ad853e35f0e716d00c1 100644 (file)
@@ -5,15 +5,19 @@ const assert = require('assert');
 const template = require('../../../src/template/admin-html');
 const Config = require('../../../config');
 const StubLogger = require('../../stub-logger');
-const lint = require('html-minifier-lint').lint; // eslint-disable-line node/no-unpublished-require
+const { makeHtmlLint } = require('@squeep/html-template-helper');
+const { HtmlValidate } = require('html-validate');
 
 const stubLogger = new StubLogger();
-
-function lintHtml(html) {
-  const result = lint(html);
-  stubLogger.debug('validHtml', '', { result, html });
-  assert(!result);
-}
+const htmlValidate = new HtmlValidate({
+  extends: [
+    'html-validate:recommended',
+  ],
+  rules: {
+    'valid-id': ['error', { relaxed: true }], // allow profile uri to be component of id
+  },
+});
+const lintHtml = makeHtmlLint(stubLogger, htmlValidate);
 
 describe('Admin HTML Template', function () {
   let ctx, config;
@@ -90,23 +94,23 @@ describe('Admin HTML Template', function () {
     };
     config = new Config('test');
   });
-  it('renders', function () {
+  it('renders', async function () {
     const result = template(ctx, config);
-    lintHtml(result);
+    await lintHtml(result);
     assert(result);
   });
-  it('renders no tokens', function () {
+  it('renders no tokens', async function () {
     ctx.tokens = [];
     const result = template(ctx, config);
-    lintHtml(result);
+    await lintHtml(result);
     assert(result);
   });
-  it('covers options', function () {
+  it('covers options', async function () {
     delete ctx.profilesScopes.profiles;
     delete ctx.profilesScopes.scopeIndex.scope.profiles;
     delete ctx.tokens;
     const result = template(ctx, config);
-    lintHtml(result);
+    await lintHtml(result);
     assert(result);
   });
 }); // Admin HTML Template