From e1c9c0ef08f2be5d59ae1e41d94555c1994a9cb6 Mon Sep 17 00:00:00 2001 From: Hitesh Walia Date: Thu, 25 Jul 2019 09:13:59 -0700 Subject: [PATCH] integration tests success --- AUTHORS | 1 - example.env | 3 +++ lib/index.js | 72 ++++++++++++---------------------------------------- test.js | 7 +++-- 4 files changed, 22 insertions(+), 61 deletions(-) create mode 100644 example.env diff --git a/AUTHORS b/AUTHORS index 6966d87..f2496e6 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,2 +1 @@ AJ ONeal (https://coolaj86.com/) -Hitesh Walia \ No newline at end of file diff --git a/example.env b/example.env new file mode 100644 index 0000000..e053b84 --- /dev/null +++ b/example.env @@ -0,0 +1,3 @@ +ZONE=example.co.uk +USERNAME=johndoe +PASSWORD=xxxxxxxx diff --git a/lib/index.js b/lib/index.js index 5c71abb..9bebbc3 100644 --- a/lib/index.js +++ b/lib/index.js @@ -1,22 +1,16 @@ 'use strict'; var request; -var defaults = { - baseUrl: 'https://api.dnsimple.com/v2/' -}; - +var defaults = {}; module.exports.create = function(config) { - var baseUrl = (config.baseUrl || defaults.baseUrl).replace(/\/$/, ''); - var token = config.token; - var account = config.account; - return { init: function(opts) { request = opts.request; return null; }, zones: function(data) { +<<<<<<< HEAD // console.info('List Zones', data); return api('GET', '/' + account + '/zones') .then(function(resp) { @@ -25,30 +19,22 @@ module.exports.create = function(config) { return elem.name; }); }); +======= + //console.info('List Zones', data); + throw Error('listing zones not implemented'); +>>>>>>> parent of 16db087... integration tests passed }, set: function(data) { // console.info('Add TXT', data); - var ch = data.challenge; - //console.log('DEBUG >>> ch: ' + JSON.stringify(ch, null, 2)); - var txt = ch.dnsAuthorization; - //console.log('DEBUG >>> txt: ' + txt); - - return api('POST', '/' + account + '/zones/' + ch.dnsZone + '/records', { - name: '', - type: 'TXT', - content: txt - }).then(function(resp) { - //console.log('DEBUG >>> resp: ' + JSON.stringify(resp, null, 2)); - - if (resp.statusCode === 201) { - return true; - } - throw new Error('record did not set. check subdomain, api key, etc'); - - }); + throw Error('setting TXT not implemented'); + }, + remove: function(data) { + // console.info('Remove TXT', data); + throw Error('removing TXT not implemented'); }, get: function(data) { // console.info('List TXT', data); +<<<<<<< HEAD return api('GET', '/' + account + '/zones/' + data.challenge.dnsZone + '/records') .then(function(resp) { @@ -83,35 +69,9 @@ module.exports.create = function(config) { throw new Error('Txt Record not found for removal'); } }); +======= + throw Error('listing TXTs not implemented'); +>>>>>>> parent of 16db087... integration tests passed } - } - - // Authentication and Error handling here - function api(method, path, form) { - var req = { - method: method, - url: baseUrl + path, - headers: { - Authorization: 'Bearer ' + token, - 'Content-Type': 'application/json' - }, - json: true, - form: form - }; - return request(req).then(function(resp) { - if (2 !== Math.floor(resp.statusCode / 100)) { - console.error(resp.statusCode, req.url); - console.error(); - console.error('Request:'); - console.error(req); - console.error(); - console.error('Response:'); - console.error(resp.body); - console.error(); - throw new Error('Error response. Check token, baseUrl, domains, etc.'); - } - return resp; - }); - } - + }; }; diff --git a/test.js b/test.js index ca647ba..a459da9 100755 --- a/test.js +++ b/test.js @@ -5,12 +5,11 @@ var tester = require('acme-challenge-test'); require('dotenv').config(); -// Usage: node ./test.js example.com token account +// Usage: node ./test.js example.com username xxxxxxxxx var zone = process.argv[2] || process.env.ZONE; - var challenger = require('./index.js').create({ - token: process.argv[3] || process.env.TOKEN, - account: process.argv[4] || process.env.ACCOUNT + username: process.argv[3] || process.env.USERNAME, + password: process.argv[4] || process.env.PASSWORD }); // The dry-run tests can pass on, literally, 'example.com'