update dependencies and devDependencies, address lint issues
[squeep-indie-auther] / test / src / template / admin-html.js
index 4c9e7a77fecb2f34370475470bf1de6422dbeea4..bf44d9fbd6032bc963fd5f67bf3a14585590db1b 100644 (file)
@@ -1,19 +1,23 @@
-/* eslint-env mocha */
+/* eslint-disable sonarjs/no-duplicate-string */
 'use strict';
 
 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