A very simple test for all Greenlock management strategies. Any le-manage- plugin should be able to pass this test.
Go to file
AJ ONeal 4365e4cdb1 v3.0.0: test harness for le-manage- plugins 2019-04-06 13:57:35 -06:00
.gitignore v3.0.0: test harness for le-manage- plugins 2019-04-06 13:57:35 -06:00
LICENSE v3.0.0: test harness for le-manage- plugins 2019-04-06 13:57:35 -06:00
README.md v3.0.0: test harness for le-manage- plugins 2019-04-06 13:57:35 -06:00
example.js v3.0.0: test harness for le-manage- plugins 2019-04-06 13:57:35 -06:00
index.js v3.0.0: test harness for le-manage- plugins 2019-04-06 13:57:35 -06:00
package.json v3.0.0: test harness for le-manage- plugins 2019-04-06 13:57:35 -06:00

README.md

le-manage-test

| A Root Project |

The test harness you should use when writing a management strategy for Greenlock v2.7+ (and v3).

All implementations that support multiple domains MUST pass these tests (which is not a hard thing to do).

Install

npm install --save-dev le-manage-test@3.x

Usage

var tester = require('le-manage-test');

// The function that checks the database for the domain (or its wildcard) and returns the results
function approveDomains(opts) {
  var domain = opts.domain;

  // try exact match (ex: www.example.com)
  var info = DB.find(domain);

  // try wildcard match (ex: *.example.com)
  if (!info) { info = DB.find(wild) }

  // If there's no info, it didn't exist, return null (not undefined)
  if (!info) { return null; }

  //return { subject: 'example.com', altnames: [ 'example.com', 'www.example.com' ] };
  return { subject: info.subject, altnames: info.altnames };
}

function updateDomains(opts) {
  // return null (not undefined)
  return DB.associate(opts.subject, opts.altnames);
}

tester.test({
  set: updateDomains
, get: approveDomains
}).then(function () {
  console.info("PASS");
});

Example

See example.js.

Will post reference implementations here later...