From b3a45cf7d355a46aef0c428c16d0d262ab235740 Mon Sep 17 00:00:00 2001 From: wolfy1339 <4595477+wolfy1339@users.noreply.github.com> Date: Sun, 13 Jun 2021 18:02:11 -0400 Subject: [PATCH] feat: rewrite in ESModules (#407) BREAKING CHANGE: Rewrite to use ESModules instead of CommonJS Co-authored-by: Gregor Martynus <39992+gr2m@users.noreply.github.com> Co-authored-by: Lucas Fiegl --- bin/record.js | 64 +++++++++++-------- bin/remove-temporary-repositories.js | 45 +++++++------ index.js | 39 ++++++----- lib/calculate-body-length.js | 2 +- lib/env.js | 8 +-- lib/fixturize-commit-sha.js | 2 +- lib/fixturize-entity-id.js | 2 +- lib/fixturize-path.js | 16 ++--- lib/headers.js | 10 +-- lib/normalize/archive.js | 26 ++++---- lib/normalize/branch-protection.js | 40 ++++++------ lib/normalize/combined-status.js | 12 ++-- lib/normalize/commit.js | 10 +-- lib/normalize/common.js | 2 +- lib/normalize/content.js | 6 +- lib/normalize/error.js | 4 +- lib/normalize/file-change.js | 6 +- lib/normalize/index.js | 33 +++++----- lib/normalize/invitation.js | 12 ++-- lib/normalize/issue.js | 10 +-- lib/normalize/label.js | 8 +-- lib/normalize/organization.js | 8 +-- lib/normalize/project-card-move.js | 6 +- lib/normalize/project-card.js | 11 ++-- lib/normalize/reference.js | 9 ++- lib/normalize/release-asset.js | 11 ++-- lib/normalize/release.js | 13 ++-- lib/normalize/repository.js | 18 +++--- lib/normalize/search-issues.js | 10 +-- lib/normalize/status.js | 10 +-- lib/normalize/team.js | 8 +-- lib/normalize/user.js | 8 +-- lib/read.js | 15 +++-- lib/record-scenario.js | 15 +++-- lib/remove-credentials.js | 21 +++--- lib/set-if-exists.js | 6 +- lib/temporary-repository.js | 4 +- lib/to-entity-name.js | 2 +- lib/write.js | 19 ++++-- package.json | 13 ++-- .../record.js | 6 +- .../test.js | 4 +- .../add-labels-to-issue/record.js | 7 +- .../add-labels-to-issue/test.js | 4 +- .../branch-protection/record.js | 7 +- .../api.github.com/branch-protection/test.js | 5 +- .../api.github.com/create-file/record.js | 7 +- scenarios/api.github.com/create-file/test.js | 4 +- .../api.github.com/create-status/record.js | 7 +- .../api.github.com/create-status/test.js | 4 +- scenarios/api.github.com/errors/record.js | 7 +- scenarios/api.github.com/errors/test.js | 4 +- .../api.github.com/get-archive/record.js | 7 +- scenarios/api.github.com/get-archive/test.js | 4 +- .../api.github.com/get-content/record.js | 4 +- scenarios/api.github.com/get-content/test.js | 4 +- .../api.github.com/get-organization/record.js | 4 +- .../api.github.com/get-organization/test.js | 4 +- .../api.github.com/get-repository/record.js | 4 +- .../api.github.com/get-repository/test.js | 4 +- scenarios/api.github.com/get-root/record.js | 4 +- scenarios/api.github.com/get-root/test.js | 4 +- scenarios/api.github.com/git-refs/record.js | 7 +- scenarios/api.github.com/git-refs/test.js | 4 +- scenarios/api.github.com/labels/record.js | 7 +- scenarios/api.github.com/labels/test.js | 4 +- scenarios/api.github.com/lock-issue/record.js | 7 +- scenarios/api.github.com/lock-issue/test.js | 4 +- .../mark-notifications-as-read/record.js | 5 +- .../mark-notifications-as-read/test.js | 4 +- scenarios/api.github.com/markdown/record.js | 4 +- scenarios/api.github.com/markdown/test.js | 4 +- .../api.github.com/paginate-issues/record.js | 7 +- .../api.github.com/paginate-issues/test.js | 6 +- .../api.github.com/project-cards/record.js | 7 +- .../api.github.com/project-cards/test.js | 4 +- .../release-assets-conflict/record.js | 10 ++- .../release-assets-conflict/test.js | 4 +- .../api.github.com/release-assets/record.js | 19 +++--- .../api.github.com/release-assets/test.js | 4 +- .../rename-repository/record.js | 7 +- .../api.github.com/rename-repository/test.js | 4 +- .../api.github.com/search-issues/record.js | 7 +- .../api.github.com/search-issues/test.js | 4 +- test/integration/additions.test.js | 11 ++-- test/integration/normalize.test.js | 21 ++++-- test/integration/smoke.test.js | 11 +++- test/unit/fixturize-commit-sha.test.js | 2 +- test/unit/set-if-exists.test.js | 2 +- test/unit/temporary-repository.test.js | 12 ++-- 90 files changed, 434 insertions(+), 431 deletions(-) diff --git a/bin/record.js b/bin/record.js index f8db8255..26587d45 100755 --- a/bin/record.js +++ b/bin/record.js @@ -1,39 +1,47 @@ #!/usr/bin/env node // run with "DEBUG=axios" to see debug logs -require("axios-debug-log")({ - request: function(debug, config) { +import axiosDebugLog from "axios-debug-log"; +axiosDebugLog({ + request: function (debug, config) { debug(`${config.method.toUpperCase()} ${config.url}`); }, response: () => {}, - error: () => {} + error: () => {}, }); -const axios = require("axios"); -const Bottleneck = require("bottleneck"); -const chalk = require("chalk"); -const cloneDeep = require("lodash/cloneDeep"); -const { diff, diffString } = require("json-diff"); -const glob = require("glob"); -const humanize = require("humanize-string"); - -const normalize = require("../lib/normalize"); -const read = require("../lib/read"); -const recordScenario = require("../lib/record-scenario"); -const write = require("../lib/write"); - -const argv = require("minimist")(process.argv.slice(2), { - boolean: ["update", "test-cached"] +import axios from "axios"; +import Bottleneck from "bottleneck"; +import chalk from "chalk"; +import cloneDeep from "lodash/cloneDeep.js"; +import { diff, diffString } from "json-diff"; +import glob from "glob"; +import humanize from "humanize-string"; +import minimist from "minimist"; + +import normalize from "../lib/normalize/index.js"; +import read from "../lib/read.js"; +import recordScenario from "../lib/record-scenario.js"; +import write from "../lib/write.js"; + +const argv = minimist(process.argv.slice(2), { + boolean: ["update", "test-cached"], }); const doUpdate = argv.update; const selectedScenarios = argv._; const hasSelectedScenarios = selectedScenarios.length > 0; +console.log(`hasSelectedScenarios`); +console.log(hasSelectedScenarios); + const scenarios = hasSelectedScenarios ? selectedScenarios : glob.sync("scenarios/**/record.js"); const diffs = []; +console.log(`scenarios`); +console.log(scenarios); + // run scenarios one by one scenarios .reduce(async (promise, scenarioPath) => { @@ -50,16 +58,16 @@ scenarios const request = axios.create({ baseURL: `https://${domain}`, - maxRedirects: 0 // record redirects explicitly + maxRedirects: 0, // record redirects explicitly }); // throttle writing requests // https://developer.github.com/v3/guides/best-practices-for-integrators/#dealing-with-abuse-rate-limits const limiter = new Bottleneck({ maxConcurrent: 1, - minTime: 3000 + minTime: 3000, }); - request.interceptors.request.use(config => { + request.interceptors.request.use((config) => { if ( !["POST", "PATCH", "PUT", "DELETE"].includes( config.method.toUpperCase() @@ -73,7 +81,7 @@ scenarios // set strict validation header, remove once stricter validations are applied // to all requests: https://developer.github.com/changes/2018-11-07-strict-validation/ - request.interceptors.request.use(config => { + request.interceptors.request.use((config) => { config.headers.Accept = `${config.headers.Accept},application/vnd.github.speedy-preview+json`; return config; }); @@ -81,12 +89,12 @@ scenarios const oldNormalizedFixtures = await read(fixtureName); const newRawFixtures = await recordScenario({ request: request, - scenario: require(`../scenarios/${fixtureName}/record`) + scenario: (await import(`../scenarios/${fixtureName}/record.js`)).default, }); const scenarioState = { commitSha: {}, // map original commit sha hashes to normalized commit hashes - ids: {} + ids: {}, }; const newNormalizedFixtures = await Promise.all( @@ -107,7 +115,7 @@ scenarios changes: fixturesDiffs, newNormalizedFixtures, oldNormalizedFixtures, - newRawFixtures + newRawFixtures, }); if (fixturesDiffs[0][0] === "-") { @@ -115,7 +123,7 @@ scenarios console.log("📼 New fixtures recorded"); return write(fixtureName, { normalized: newNormalizedFixtures, - raw: newRawFixtures + raw: newRawFixtures, }); } console.log(`❌ "${fixtureName}" looks like a new fixture`); @@ -126,7 +134,7 @@ scenarios console.log("📼 Fixture updates recorded"); return write(fixtureName, { normalized: newNormalizedFixtures, - raw: newRawFixtures + raw: newRawFixtures, }); } @@ -152,7 +160,7 @@ scenarios process.exit(1); }) - .catch(error => { + .catch((error) => { if (!error.response) { console.log(error); process.exit(1); diff --git a/bin/remove-temporary-repositories.js b/bin/remove-temporary-repositories.js index 7d27731b..77c743d4 100755 --- a/bin/remove-temporary-repositories.js +++ b/bin/remove-temporary-repositories.js @@ -1,32 +1,35 @@ #!/usr/bin/env node -const axios = require('axios') +import axios from "axios"; -const env = require('../lib/env') -const temporaryRepository = require('../lib/temporary-repository') +import env from "../lib/env.js"; +import { regex } from "../lib/temporary-repository.js"; const github = axios.create({ - baseURL: 'https://api.github.com', + baseURL: "https://api.github.com", headers: { - Accept: 'application/vnd.github.v3+json', - Authorization: `token ${env.FIXTURES_USER_A_TOKEN_FULL_ACCESS}` - } -}) + Accept: "application/vnd.github.v3+json", + Authorization: `token ${env.FIXTURES_USER_A_TOKEN_FULL_ACCESS}`, + }, +}); -github.get('/orgs/octokit-fixture-org/repos') +github + .get("/orgs/octokit-fixture-org/repos") - .then(result => { - return Promise.all(result.data - .map(repository => repository.name) - .filter(name => temporaryRepository.regex.test(name)) - .map(name => { - return github.delete(`/repos/octokit-fixture-org/${name}`) + .then((result) => { + return Promise.all( + result.data + .map((repository) => repository.name) + .filter((name) => regex.test(name)) + .map((name) => { + return github + .delete(`/repos/octokit-fixture-org/${name}`) - .then(() => { - console.log(`✅ ${name} deleted`) - }) - }) - ) + .then(() => { + console.log(`✅ ${name} deleted`); + }); + }) + ); }) - .catch(console.log) + .catch(console.log); diff --git a/index.js b/index.js index 3e8dbec0..4c1bd070 100644 --- a/index.js +++ b/index.js @@ -1,22 +1,24 @@ -const assert = require("assert"); -const { URL } = require("url"); - -const cloneDeep = require("lodash/cloneDeep"); -const merge = require("lodash/merge"); -const pick = require("lodash/pick"); -const nock = require("nock"); -const headers = require("./lib/headers"); -const diffString = require("json-diff").diffString; - -module.exports = { +import assert from "assert"; +import { URL } from "url"; +import cloneDeep from "lodash/cloneDeep.js"; +import merge from "lodash/merge.js"; +import pick from "lodash/pick.js"; +import nock from "nock"; +import headers from "./lib/headers.js"; +import { diffString } from "json-diff"; +import { readFileSync } from "fs"; + +export default { // don’t use short syntax for node@4 compatibility - get: get, - mock: mock, - nock: nock, + get, + mock, + nock, }; function get(name) { - return require(`./scenarios/${name}/normalized-fixture.json`); + return JSON.parse( + readFileSync(`./scenarios/${name}/normalized-fixture.json`) + ); } function mock(fixtures, additions) { @@ -44,10 +46,7 @@ function mock(fixtures, additions) { const api = { pending() { - return [].concat.apply( - [], - mocks.map((mock) => mock.pendingMocks()) - ); + return [].concat(...mocks.map((mock) => mock.pendingMocks())); }, explain(error) { if (!/^Nock: No match/.test(error.message)) { @@ -81,7 +80,7 @@ function mock(fixtures, additions) { done() { assert.ok( api.isDone(), - "Mocks not yet satisfied:\n" + api.pending().join("\n") + `Mocks not yet satisfied:\n${api.pending().join("\n")}` ); }, isDone() { diff --git a/lib/calculate-body-length.js b/lib/calculate-body-length.js index 167202ac..b895dd2f 100644 --- a/lib/calculate-body-length.js +++ b/lib/calculate-body-length.js @@ -1,4 +1,4 @@ -module.exports = calculateBodyLength; +export default calculateBodyLength; function calculateBodyLength(body) { if (typeof body === "string") { diff --git a/lib/env.js b/lib/env.js index 3920d622..f14cc972 100644 --- a/lib/env.js +++ b/lib/env.js @@ -1,6 +1,6 @@ -const envalid = require("envalid"); +import { cleanEnv, str } from "envalid"; -module.exports = envalid.cleanEnv(process.env, { - FIXTURES_USER_A_TOKEN_FULL_ACCESS: envalid.str(), - FIXTURES_USER_B_TOKEN_FULL_ACCESS: envalid.str(), +export default cleanEnv(process.env, { + FIXTURES_USER_A_TOKEN_FULL_ACCESS: str(), + FIXTURES_USER_B_TOKEN_FULL_ACCESS: str(), }); diff --git a/lib/fixturize-commit-sha.js b/lib/fixturize-commit-sha.js index 6ea4cfa3..df566324 100644 --- a/lib/fixturize-commit-sha.js +++ b/lib/fixturize-commit-sha.js @@ -1,4 +1,4 @@ -module.exports = fixturizeCommitSha; +export default fixturizeCommitSha; // We keep track of commit sha hashes. We don’t want to simply zerofy them as // there can be multiple commits. So instead we keep state of a counter and diff --git a/lib/fixturize-entity-id.js b/lib/fixturize-entity-id.js index a00e498b..706e5c06 100644 --- a/lib/fixturize-entity-id.js +++ b/lib/fixturize-entity-id.js @@ -1,4 +1,4 @@ -module.exports = fixturizeEntityId; +export default fixturizeEntityId; // In cases when we can’t simply set IDs to 1 because we have to handle multiple // entities of the same type, this method returns counter-based IDs per type diff --git a/lib/fixturize-path.js b/lib/fixturize-path.js index 957bbe77..45ba03d5 100644 --- a/lib/fixturize-path.js +++ b/lib/fixturize-path.js @@ -1,8 +1,8 @@ -module.exports = fixturizePath; +export default fixturizePath; -const fixturizeCommitSha = require("./fixturize-commit-sha"); -const fixturizeEntityId = require("./fixturize-entity-id"); -const temporaryRepository = require("./temporary-repository"); +import fixturizeCommitSha from "./fixturize-commit-sha.js"; +import fixturizeEntityId from "./fixturize-entity-id.js"; +import { regex } from "./temporary-repository.js"; const PLACEHOLDER_REGEX = /\{[^}]+\}/g; const PATH_TEMPLATES = [ @@ -27,7 +27,7 @@ const FIND_SHA_OR_ID_REGEX_STRING = "(\\w{40}|\\d+)"; function fixturizePath(scenarioState, path) { // rename temporary repositories // e.g. tmp-scenario-bar-20170924033013835 => bar - path = path.replace(temporaryRepository.regex, "$1"); + path = path.replace(regex, "$1"); const pathTemplate = PATH_TEMPLATES.find((pathTemplate) => { const regexString = pathTemplate.replace( @@ -41,11 +41,11 @@ function fixturizePath(scenarioState, path) { return path; } - const regex = new RegExp( + const placeholderRegex = new RegExp( pathTemplate.replace(PLACEHOLDER_REGEX, FIND_SHA_OR_ID_REGEX_STRING) ); const placeholderNames = pathTemplate.match(PLACEHOLDER_REGEX); - const idsOrShas = path.match(regex).slice(1); + const idsOrShas = path.match(placeholderRegex).slice(1); const newPath = placeholderNames.reduce((pathTemplate, placeholder, i) => { const entityName = toEntityName(placeholder); @@ -65,7 +65,7 @@ function fixturizePath(scenarioState, path) { return ( path - .replace(regex, newPath) + .replace(placeholderRegex, newPath) // ?u=[sha] query parameter .replace(/\?u=\w{40}/, "?u=0000000000000000000000000000000000000001") ); diff --git a/lib/headers.js b/lib/headers.js index 083e5cc3..73c413f5 100644 --- a/lib/headers.js +++ b/lib/headers.js @@ -1,7 +1,4 @@ -module.exports = { - toObject: rawHeadersToObject, - toArray: objectToRawHeaders, -}; +export default { toObject: rawHeadersToObject, toArray: objectToRawHeaders }; function rawHeadersToObject(rawHeaders) { const keys = []; @@ -19,8 +16,5 @@ function rawHeadersToObject(rawHeaders) { function objectToRawHeaders(map) { const keys = Object.keys(map).sort(); - return [].concat.apply( - [], - keys.map((key) => [key, map[key]]) - ); + return [].concat(...keys.map((key) => [key, map[key]])); } diff --git a/lib/normalize/archive.js b/lib/normalize/archive.js index 34c2c87c..9866a035 100644 --- a/lib/normalize/archive.js +++ b/lib/normalize/archive.js @@ -1,25 +1,25 @@ -module.exports = normalizeArchive; +export default normalizeArchive; -const zlib = require("zlib"); +import { createGzip } from "zlib"; -const intoStream = require("into-stream"); -const getStream = require("get-stream"); -const tar = require("tar-stream"); -const gunzip = require("gunzip-maybe"); +import intoStream from "into-stream"; +import { buffer } from "get-stream"; +import { extract as _extract, pack as _pack } from "tar-stream"; +import gunzip from "gunzip-maybe"; -const temporaryRepository = require("../temporary-repository"); +import { regex } from "../temporary-repository.js"; async function normalizeArchive(scenarioState, response, fixture) { fixture.headers["content-disposition"] = fixture.headers[ "content-disposition" ] // normalize folder name in file name - .replace(temporaryRepository.regex, "$1") + .replace(regex, "$1") // zerofy sha .replace(/archive-\w{7}/, "archive-0000000"); - const extract = tar.extract(); - const pack = tar.pack(); + const extract = _extract(); + const pack = _pack(); const readStream = intoStream(Buffer.from(response, "hex")); // The response is the Repository folder with the README.md file inside. The @@ -30,7 +30,7 @@ async function normalizeArchive(scenarioState, response, fixture) { extract.on("entry", function (header, stream, callback) { header.name = header.name // normalize folder name in path - .replace(temporaryRepository.regex, "$1") + .replace(regex, "$1") // zerofy sha in path .replace(/-(\w){7}\//, "-0000000/"); @@ -52,9 +52,9 @@ async function normalizeArchive(scenarioState, response, fixture) { readStream.pipe(gunzip()).pipe(extract); // pipe the new tarball the another stream - const writeStream = pack.pipe(zlib.createGzip()); + const writeStream = pack.pipe(createGzip()); - const result = await getStream.buffer(writeStream).catch(console.log); + const result = await buffer(writeStream).catch(console.log); fixture.response = result.toString("hex"); // normalize across operating systems / extra flags diff --git a/lib/normalize/branch-protection.js b/lib/normalize/branch-protection.js index da990155..c5adc59b 100644 --- a/lib/normalize/branch-protection.js +++ b/lib/normalize/branch-protection.js @@ -1,56 +1,52 @@ -module.exports = branchProtection; +export default branchProtection; -const get = require("lodash/get"); +import get from "lodash/get.js"; -const normalizeTeam = require("./team"); -const normalizeUser = require("./user"); -const setIfExists = require("../set-if-exists"); -const temporaryRepository = require("../temporary-repository"); +import normalizeTeam from "./team.js"; +import normalizeUser from "./user.js"; +import setIfExists from "../set-if-exists.js"; +import { regex } from "../temporary-repository.js"; // https://developer.github.com/v3/repos/branches/#response-2 function branchProtection(scenarioState, response) { // normalize temporary repository - setIfExists(response, "url", (url) => - url.replace(temporaryRepository.regex, "$1") - ); + setIfExists(response, "url", (url) => url.replace(regex, "$1")); setIfExists(response, "required_status_checks.url", (url) => - url.replace(temporaryRepository.regex, "$1") + url.replace(regex, "$1") ); setIfExists(response, "required_status_checks.contexts_url", (url) => - url.replace(temporaryRepository.regex, "$1") + url.replace(regex, "$1") ); setIfExists(response, "required_pull_request_reviews.url", (url) => - url.replace(temporaryRepository.regex, "$1") + url.replace(regex, "$1") ); setIfExists( response, "required_pull_request_reviews.dismissal_restrictions.url", - (url) => url.replace(temporaryRepository.regex, "$1") + (url) => url.replace(regex, "$1") ); setIfExists( response, "required_pull_request_reviews.dismissal_restrictions.users_url", - (url) => url.replace(temporaryRepository.regex, "$1") + (url) => url.replace(regex, "$1") ); setIfExists( response, "required_pull_request_reviews.dismissal_restrictions.teams_url", - (url) => url.replace(temporaryRepository.regex, "$1") + (url) => url.replace(regex, "$1") ); setIfExists(response, "enforce_admins.url", (url) => - url.replace(temporaryRepository.regex, "$1") - ); - setIfExists(response, "restrictions.url", (url) => - url.replace(temporaryRepository.regex, "$1") + url.replace(regex, "$1") ); + setIfExists(response, "restrictions.url", (url) => url.replace(regex, "$1")); setIfExists(response, "restrictions.users_url", (url) => - url.replace(temporaryRepository.regex, "$1") + url.replace(regex, "$1") ); setIfExists(response, "restrictions.teams_url", (url) => - url.replace(temporaryRepository.regex, "$1") + url.replace(regex, "$1") ); setIfExists(response, "restrictions.apps_url", (url) => - url.replace(temporaryRepository.regex, "$1") + url.replace(regex, "$1") ); // normalize users diff --git a/lib/normalize/combined-status.js b/lib/normalize/combined-status.js index b5d54842..3e874205 100644 --- a/lib/normalize/combined-status.js +++ b/lib/normalize/combined-status.js @@ -1,10 +1,10 @@ -module.exports = normalizeCombinedStatus; +export default normalizeCombinedStatus; -const fixturizeCommitSha = require("../fixturize-commit-sha"); -const fixturizePath = require("../fixturize-path"); -const normalizeRepository = require("./repository"); -const normalizeStatus = require("./status"); -const setIfExists = require("../set-if-exists"); +import fixturizeCommitSha from "../fixturize-commit-sha.js"; +import fixturizePath from "../fixturize-path.js"; +import normalizeRepository from "./repository.js"; +import normalizeStatus from "./status.js"; +import setIfExists from "../set-if-exists.js"; function normalizeCombinedStatus(scenarioState, response) { const sha = response.sha; diff --git a/lib/normalize/commit.js b/lib/normalize/commit.js index 445d6c17..6583dae7 100644 --- a/lib/normalize/commit.js +++ b/lib/normalize/commit.js @@ -1,10 +1,10 @@ -module.exports = normalizeCommit; +export default normalizeCommit; -const get = require("lodash/get"); +import get from "lodash/get.js"; -const fixturizeCommitSha = require("../fixturize-commit-sha"); -const fixturizePath = require("../fixturize-path"); -const setIfExists = require("../set-if-exists"); +import fixturizeCommitSha from "../fixturize-commit-sha.js"; +import fixturizePath from "../fixturize-path.js"; +import setIfExists from "../set-if-exists.js"; function normalizeCommit(scenarioState, response) { const sha = response.sha; diff --git a/lib/normalize/common.js b/lib/normalize/common.js index 2f348da6..820da4e6 100644 --- a/lib/normalize/common.js +++ b/lib/normalize/common.js @@ -1,4 +1,4 @@ -module.exports = normalizeCommon; +export default normalizeCommon; function normalizeCommon(response) { if (typeof response !== "object") { diff --git a/lib/normalize/content.js b/lib/normalize/content.js index 1e14519f..322bd509 100644 --- a/lib/normalize/content.js +++ b/lib/normalize/content.js @@ -1,7 +1,7 @@ -module.exports = normalizeContent; +export default normalizeContent; -const fixturizePath = require("../fixturize-path"); -const setIfExists = require("../set-if-exists"); +import fixturizePath from "../fixturize-path.js"; +import setIfExists from "../set-if-exists.js"; function normalizeContent(scenarioState, response) { // set all dates to Universe 2017 Keynote time diff --git a/lib/normalize/error.js b/lib/normalize/error.js index c84e5bd6..cc209ea0 100644 --- a/lib/normalize/error.js +++ b/lib/normalize/error.js @@ -1,6 +1,6 @@ -module.exports = normalizeContent; +export default normalizeContent; -const setIfExists = require("../set-if-exists"); +import setIfExists from "../set-if-exists.js"; function normalizeContent(scenarioState, response) { // zerofy request ID diff --git a/lib/normalize/file-change.js b/lib/normalize/file-change.js index e5aa3ce0..e42b2925 100644 --- a/lib/normalize/file-change.js +++ b/lib/normalize/file-change.js @@ -1,7 +1,7 @@ -module.exports = normalizeFileChange; +export default normalizeFileChange; -const normalizeCommit = require("./commit"); -const normalizeContent = require("./content"); +import normalizeCommit from "./commit.js"; +import normalizeContent from "./content.js"; function normalizeFileChange(scenarioState, response) { normalizeCommit(scenarioState, response.commit); diff --git a/lib/normalize/index.js b/lib/normalize/index.js index 2fa22030..a7c879c3 100644 --- a/lib/normalize/index.js +++ b/lib/normalize/index.js @@ -1,11 +1,10 @@ -module.exports = normalize; - -const calculateBodyLength = require("../calculate-body-length"); -const fixturizePath = require("../fixturize-path"); -const headers = require("../headers"); -const normalizeCommon = require("./common"); -const setIfExists = require("../set-if-exists"); -const toEntityName = require("../to-entity-name"); +export default normalize; +import calculateBodyLength from "../calculate-body-length.js"; +import fixturizePath from "../fixturize-path.js"; +import headers from "../headers.js"; +import normalizeCommon from "./common.js"; +import setIfExists from "../set-if-exists.js"; +import toEntityName from "../to-entity-name.js"; async function normalize(scenarioState, fixture) { // fixture.rawHeaders is an array in the form of ['key1', 'value1', 'key2', 'value2'] @@ -84,15 +83,15 @@ async function normalize(scenarioState, fixture) { const responses = Array.isArray(fixture.response) ? fixture.response : [fixture.response]; - await Promise.all( - responses.map(async (response) => { - normalizeCommon(response); - const entityName = toEntityName(response, fixture); - if (entityName) { - await require(`./${entityName}`)(scenarioState, response, fixture); - } - }) - ); + for (let response of responses) { + normalizeCommon(response); + const entityName = toEntityName(response, fixture); + if (entityName) { + await ( + await import(`./${entityName}.js`) + ).default(scenarioState, response, fixture); + } + } // update content length if (/^application\/json/.test(fixture.headers["content-type"])) { diff --git a/lib/normalize/invitation.js b/lib/normalize/invitation.js index 840e987d..bc3a0622 100644 --- a/lib/normalize/invitation.js +++ b/lib/normalize/invitation.js @@ -1,10 +1,10 @@ -module.exports = normalizeInvitation; +export default normalizeInvitation; -const fixturizeEntityId = require("../fixturize-entity-id"); -const fixturizePath = require("../fixturize-path"); -const normalizeRepository = require("./repository"); -const normalizeUser = require("./user"); -const setIfExists = require("../set-if-exists"); +import fixturizeEntityId from "../fixturize-entity-id.js"; +import fixturizePath from "../fixturize-path.js"; +import normalizeRepository from "./repository.js"; +import normalizeUser from "./user.js"; +import setIfExists from "../set-if-exists.js"; function normalizeInvitation(scenarioState, response) { // set all IDs to 1 diff --git a/lib/normalize/issue.js b/lib/normalize/issue.js index 67dfd073..18d5b1d1 100644 --- a/lib/normalize/issue.js +++ b/lib/normalize/issue.js @@ -1,9 +1,9 @@ -module.exports = normalizeIssue; +export default normalizeIssue; -const fixturizeEntityId = require("../fixturize-entity-id"); -const fixturizePath = require("../fixturize-path"); -const normalizeUser = require("./user"); -const setIfExists = require("../set-if-exists"); +import fixturizeEntityId from "../fixturize-entity-id.js"; +import fixturizePath from "../fixturize-path.js"; +import normalizeUser from "./user.js"; +import setIfExists from "../set-if-exists.js"; function normalizeIssue(scenarioState, response) { // set all IDs to 1 diff --git a/lib/normalize/label.js b/lib/normalize/label.js index 2e9c4e1a..2e1816f5 100644 --- a/lib/normalize/label.js +++ b/lib/normalize/label.js @@ -1,8 +1,8 @@ -module.exports = normalizeIssue; +export default normalizeIssue; -const fixturizeEntityId = require("../fixturize-entity-id"); -const fixturizePath = require("../fixturize-path"); -const setIfExists = require("../set-if-exists"); +import fixturizeEntityId from "../fixturize-entity-id.js"; +import fixturizePath from "../fixturize-path.js"; +import setIfExists from "../set-if-exists.js"; function normalizeIssue(scenarioState, response) { // set all IDs to 1 diff --git a/lib/normalize/organization.js b/lib/normalize/organization.js index c533caed..a42d37c2 100644 --- a/lib/normalize/organization.js +++ b/lib/normalize/organization.js @@ -1,8 +1,8 @@ -module.exports = normalizeOrganization; +export default normalizeOrganization; -const fixturizeEntityId = require("../fixturize-entity-id"); -const fixturizePath = require("../fixturize-path"); -const setIfExists = require("../set-if-exists"); +import fixturizeEntityId from "../fixturize-entity-id.js"; +import fixturizePath from "../fixturize-path.js"; +import setIfExists from "../set-if-exists.js"; function normalizeOrganization(scenarioState, response) { // set all IDs to 1 diff --git a/lib/normalize/project-card-move.js b/lib/normalize/project-card-move.js index 33e7fffa..0ecb85b5 100644 --- a/lib/normalize/project-card-move.js +++ b/lib/normalize/project-card-move.js @@ -1,7 +1,7 @@ -module.exports = projectCardMove; +export default projectCardMove; -const fixturizeEntityId = require("../fixturize-entity-id"); -const setIfExists = require("../set-if-exists"); +import fixturizeEntityId from "../fixturize-entity-id.js"; +import setIfExists from "../set-if-exists.js"; function projectCardMove(scenarioState, response, fixture) { setIfExists( diff --git a/lib/normalize/project-card.js b/lib/normalize/project-card.js index a3611626..8ee1e78a 100644 --- a/lib/normalize/project-card.js +++ b/lib/normalize/project-card.js @@ -1,9 +1,8 @@ -module.exports = projectCard; - -const fixturizeEntityId = require("../fixturize-entity-id"); -const fixturizePath = require("../fixturize-path"); -const normalizeUser = require("./user"); -const setIfExists = require("../set-if-exists"); +export default projectCard; +import fixturizeEntityId from "../fixturize-entity-id.js"; +import fixturizePath from "../fixturize-path.js"; +import normalizeUser from "./user.js"; +import setIfExists from "../set-if-exists.js"; function projectCard(scenarioState, response, fixture) { // set all IDs to 1 diff --git a/lib/normalize/reference.js b/lib/normalize/reference.js index 08c3d943..8e2f8072 100644 --- a/lib/normalize/reference.js +++ b/lib/normalize/reference.js @@ -1,8 +1,7 @@ -module.exports = normalizeReference; - -const fixturizeCommitSha = require("../fixturize-commit-sha"); -const fixturizePath = require("../fixturize-path"); -const setIfExists = require("../set-if-exists"); +export default normalizeReference; +import fixturizeCommitSha from "../fixturize-commit-sha.js"; +import fixturizePath from "../fixturize-path.js"; +import setIfExists from "../set-if-exists.js"; function normalizeReference(scenarioState, response, fixture) { // fixturize commit sha hashes diff --git a/lib/normalize/release-asset.js b/lib/normalize/release-asset.js index 199f5939..9811cba0 100644 --- a/lib/normalize/release-asset.js +++ b/lib/normalize/release-asset.js @@ -1,9 +1,8 @@ -module.exports = normalizeReleaseAsset; - -const fixturizeEntityId = require("../fixturize-entity-id"); -const fixturizePath = require("../fixturize-path"); -const normalizeUser = require("./user"); -const setIfExists = require("../set-if-exists"); +export default normalizeReleaseAsset; +import fixturizeEntityId from "../fixturize-entity-id.js"; +import fixturizePath from "../fixturize-path.js"; +import normalizeUser from "./user.js"; +import setIfExists from "../set-if-exists.js"; function normalizeReleaseAsset(scenarioState, response, fixture) { // set ID to 1 diff --git a/lib/normalize/release.js b/lib/normalize/release.js index 5d9f4723..08514d4b 100644 --- a/lib/normalize/release.js +++ b/lib/normalize/release.js @@ -1,10 +1,9 @@ -module.exports = normalizeReleaseAsset; - -const fixturizeEntityId = require("../fixturize-entity-id"); -const fixturizeCommitSha = require("../fixturize-commit-sha"); -const fixturizePath = require("../fixturize-path"); -const normalizeUser = require("./user"); -const setIfExists = require("../set-if-exists"); +export default normalizeReleaseAsset; +import fixturizeEntityId from "../fixturize-entity-id.js"; +import fixturizeCommitSha from "../fixturize-commit-sha.js"; +import fixturizePath from "../fixturize-path.js"; +import normalizeUser from "./user.js"; +import setIfExists from "../set-if-exists.js"; function normalizeReleaseAsset(scenarioState, response) { // set ID to 1 diff --git a/lib/normalize/repository.js b/lib/normalize/repository.js index 20d86a7c..3805c509 100644 --- a/lib/normalize/repository.js +++ b/lib/normalize/repository.js @@ -1,10 +1,10 @@ -module.exports = normalizeRepository; +export default normalizeRepository; -const fixturizeEntityId = require("../fixturize-entity-id"); -const normalizeOrganization = require("./organization"); -const normalizeUser = require("./user"); -const setIfExists = require("../set-if-exists"); -const temporaryRepository = require("../temporary-repository"); +import fixturizeEntityId from "../fixturize-entity-id.js"; +import normalizeOrganization from "./organization.js"; +import normalizeUser from "./user.js"; +import setIfExists from "../set-if-exists.js"; +import { regex } from "../temporary-repository.js"; function normalizeRepository(scenarioState, response, fixture) { // set all IDs to 1 @@ -79,7 +79,7 @@ function normalizeRepository(scenarioState, response, fixture) { ].forEach((property) => { // not all these properties are set in repository response all the time setIfExists(response, property, (value) => { - return value.replace(temporaryRepository.regex, "$1"); + return value.replace(regex, "$1"); }); }); @@ -91,7 +91,5 @@ function normalizeRepository(scenarioState, response, fixture) { } // normalize payload - setIfExists(fixture, "body.name", (name) => - name.replace(temporaryRepository.regex, "$1") - ); + setIfExists(fixture, "body.name", (name) => name.replace(regex, "$1")); } diff --git a/lib/normalize/search-issues.js b/lib/normalize/search-issues.js index fcb25173..542629e7 100644 --- a/lib/normalize/search-issues.js +++ b/lib/normalize/search-issues.js @@ -1,10 +1,10 @@ -module.exports = normalizeIssuesSearch; +export default normalizeIssuesSearch; -const normalizeIssue = require("./issue"); -const setIfExists = require("../set-if-exists"); +import normalizeIssue from "./issue.js"; +import setIfExists from "../set-if-exists.js"; -function normalizeIssuesSearch(scenarioState, response) { - response.items.forEach((result) => { +function normalizeIssuesSearch(scenarioState, { items }) { + items.forEach((result) => { normalizeIssue(scenarioState, result); setIfExists(result, "score", 42); }); diff --git a/lib/normalize/status.js b/lib/normalize/status.js index ac73b19d..67e8a3a4 100644 --- a/lib/normalize/status.js +++ b/lib/normalize/status.js @@ -1,9 +1,9 @@ -module.exports = normalizeStatus; +export default normalizeStatus; -const fixturizeEntityId = require("../fixturize-entity-id"); -const fixturizePath = require("../fixturize-path"); -const normalizeUser = require("./user"); -const setIfExists = require("../set-if-exists"); +import fixturizeEntityId from "../fixturize-entity-id.js"; +import fixturizePath from "../fixturize-path.js"; +import normalizeUser from "./user.js"; +import setIfExists from "../set-if-exists.js"; function normalizeStatus(scenarioState, response, fixture) { // set ID to 1 diff --git a/lib/normalize/team.js b/lib/normalize/team.js index e3fef9f9..058f2677 100644 --- a/lib/normalize/team.js +++ b/lib/normalize/team.js @@ -1,8 +1,8 @@ -module.exports = normalizeTeam; +export default normalizeTeam; -const fixturizeEntityId = require("../fixturize-entity-id"); -const fixturizePath = require("../fixturize-path"); -const setIfExists = require("../set-if-exists"); +import fixturizeEntityId from "../fixturize-entity-id.js"; +import fixturizePath from "../fixturize-path.js"; +import setIfExists from "../set-if-exists.js"; function normalizeTeam(scenarioState, response) { // set all IDs to 1 diff --git a/lib/normalize/user.js b/lib/normalize/user.js index 65e38f2b..9d2edc9d 100644 --- a/lib/normalize/user.js +++ b/lib/normalize/user.js @@ -1,8 +1,8 @@ -module.exports = normalizeUser; +export default normalizeUser; -const fixturizeEntityId = require("../fixturize-entity-id"); -const fixturizePath = require("../fixturize-path"); -const setIfExists = require("../set-if-exists"); +import fixturizeEntityId from "../fixturize-entity-id.js"; +import fixturizePath from "../fixturize-path.js"; +import setIfExists from "../set-if-exists.js"; function normalizeUser(scenarioState, response) { // set all IDs to 1 diff --git a/lib/read.js b/lib/read.js index 2e78075d..387aaeb7 100644 --- a/lib/read.js +++ b/lib/read.js @@ -1,18 +1,23 @@ -module.exports = read; +export default read; -const { resolve } = require("path"); +import { resolve, dirname } from "path"; +import { fileURLToPath } from "url"; +import { readFile } from "fs/promises"; -function read(fixturesPath) { +async function read(fixturesPath) { const path = resolve( - __dirname, + dirname(fileURLToPath(import.meta.url)), "..", "scenarios", fixturesPath, "normalized-fixture.json" ); try { - return require(path); + const json = await readFile(path); + return JSON.parse(json); } catch (error) { + if (error.code !== "ENOENT") throw error; + return []; } } diff --git a/lib/record-scenario.js b/lib/record-scenario.js index 62b63b09..4cdb93b0 100644 --- a/lib/record-scenario.js +++ b/lib/record-scenario.js @@ -1,10 +1,11 @@ -module.exports = recordScenario; +export default recordScenario; -const nock = require("nock"); -const removeCredentials = require("./remove-credentials"); +import nock from "nock"; +const { recorder, restore } = nock; +import removeCredentials from "./remove-credentials.js"; async function recordScenario({ request, scenario }) { - nock.recorder.rec({ + recorder.rec({ output_objects: true, dont_print: true, enable_reqheaders_recording: true, @@ -40,10 +41,10 @@ async function recordScenario({ request, scenario }) { await scenario({ request }); } - const fixtures = nock.recorder.play(); + const fixtures = recorder.play(); - nock.recorder.clear(); - nock.restore(); + recorder.clear(); + restore(); return fixtures.map(removeCredentials).map((fixture) => { fixture.method = fixture.method.toLowerCase(); diff --git a/lib/remove-credentials.js b/lib/remove-credentials.js index 98fc422d..fc37d116 100644 --- a/lib/remove-credentials.js +++ b/lib/remove-credentials.js @@ -1,6 +1,6 @@ -module.exports = removeCredentials; +export default removeCredentials; -const env = require("./env"); +import env from "./env.js"; const tokenToFixture = { [env.FIXTURES_USER_A_TOKEN_FULL_ACCESS]: @@ -10,15 +10,16 @@ const tokenToFixture = { }; function removeCredentials(fixture) { + console.log(`fixture.reqheaders`); + console.log(fixture.reqheaders); + // zerofy auth token - fixture.reqheaders.authorization = fixture.reqheaders.authorization.replace( - /^token (\w{40})$/, - (_, token) => { - token = - tokenToFixture[token] || "0000000000000000000000000000000000000000"; - return `token ${token}`; - } - ); + fixture.reqheaders.authorization = ( + fixture.reqheaders.authorization || "" + ).replace(/^token (\w{40})$/, (_, token) => { + token = tokenToFixture[token] || "0000000000000000000000000000000000000000"; + return `token ${token}`; + }); return fixture; } diff --git a/lib/set-if-exists.js b/lib/set-if-exists.js index 60bd8b68..70f5b58c 100644 --- a/lib/set-if-exists.js +++ b/lib/set-if-exists.js @@ -1,7 +1,7 @@ -module.exports = setIfExists; +export default setIfExists; -const get = require("lodash/get"); -const set = require("lodash/set"); +import get from "lodash/get.js"; +import set from "lodash/set.js"; function setIfExists(object, key, value) { if (!object) { diff --git a/lib/temporary-repository.js b/lib/temporary-repository.js index ccfa55d4..e95848d0 100644 --- a/lib/temporary-repository.js +++ b/lib/temporary-repository.js @@ -1,6 +1,6 @@ -module.exports = temporaryRepository; +export default temporaryRepository; -module.exports.regex = /tmp-scenario-([^/]+)-\d{17}-\w{5}/; +export const regex = /tmp-scenario-([^/]+)-\d{17}-\w{5}/; function temporaryRepository({ org, name, request, token }) { const state = { org, name, request, token }; diff --git a/lib/to-entity-name.js b/lib/to-entity-name.js index ab2168b4..b64862f9 100644 --- a/lib/to-entity-name.js +++ b/lib/to-entity-name.js @@ -1,4 +1,4 @@ -module.exports = toEntityName; +export default toEntityName; function toEntityName(object, fixture) { // object is binary response, so we check for it above the object check diff --git a/lib/write.js b/lib/write.js index 3e5e5fca..fca391fd 100644 --- a/lib/write.js +++ b/lib/write.js @@ -1,14 +1,19 @@ -module.exports = write; +export default write; -const { promisify } = require("util"); -const { resolve, dirname } = require("path"); -const writeFile = promisify(require("fs").writeFile); +import { resolve, dirname } from "path"; +import { writeFile } from "fs/promises"; +import { fileURLToPath } from "url"; -const prettier = require("prettier"); -const mkdirp = require("mkdirp"); +import prettier from "prettier"; +import mkdirp from "mkdirp"; async function write(fixturesPath, fixtures) { - const path = resolve(__dirname, "..", "scenarios", fixturesPath); + const path = resolve( + dirname(fileURLToPath(import.meta.url)), + "..", + "scenarios", + fixturesPath + ); await mkdirp(dirname(path)); return Promise.all([ diff --git a/package.json b/package.json index 7a19947a..c2975ff5 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ }, "description": "Fixtures for all the octokittens", "main": "index.js", + "type": "module", "files": [ "index.js", "bin", @@ -16,12 +17,12 @@ "coverage": "tap --coverage-report=html", "record": "bin/record.js", "pretest": "npm run -s lint", - "lint": "prettier --check '{lib,scenarios,test}/**/*.{js,json}' index.js README.md package.json", - "lint:fix": "prettier --write '{lib,scenarios,test}/**/*.{js,json}' index.js README.md package.json", - "test": "jest --coverage 'scenarios/.*/test.js' 'test/.*/.*.test.js'", - "test:unit": "jest -i 'test/unit/.*/*.test.js'", - "test:integration": "jest -i 'test/integration/.*/*.test.js'", - "test:scenarios": "jest -i 'scenarios/.*/test.js'", + "lint": "prettier --check '{bin,lib,scenarios,test}/**/*.{js,json}' index.js README.md package.json", + "lint:fix": "prettier --write '{bin,lib,scenarios,test}/**/*.{js,json}' index.js README.md package.json", + "test": "NODE_OPTIONS=--experimental-vm-modules npx jest --coverage 'scenarios/.*/test.js' 'test/.*/.*.test.js'", + "test:unit": "NODE_OPTIONS=--experimental-vm-modules npx jest -i 'test/unit/.*/*.test.js'", + "test:integration": "NODE_OPTIONS=--experimental-vm-modules npx jest -i 'test/integration/.*/*.test.js'", + "test:scenarios": "NODE_OPTIONS=--experimental-vm-modules npx jest -i 'scenarios/.*/test.js'", "semantic-release": "semantic-release" }, "repository": "github:octokit/fixtures", diff --git a/scenarios/api.github.com/add-and-remove-repository-collaborator/record.js b/scenarios/api.github.com/add-and-remove-repository-collaborator/record.js index e27d1513..5c71b1c3 100644 --- a/scenarios/api.github.com/add-and-remove-repository-collaborator/record.js +++ b/scenarios/api.github.com/add-and-remove-repository-collaborator/record.js @@ -1,7 +1,7 @@ -module.exports = addAndRemoveRepostioryCollaborator; +export default addAndRemoveRepostioryCollaborator; -const env = require("../../../lib/env"); -const getTemporaryRepository = require("../../../lib/temporary-repository"); +import env from "../../../lib/env.js"; +import getTemporaryRepository from "../../../lib/temporary-repository.js"; // - As user A, invite user B as collaborator to repository "octokit-fixture-org/hello-world" // - As user A, list invitations diff --git a/scenarios/api.github.com/add-and-remove-repository-collaborator/test.js b/scenarios/api.github.com/add-and-remove-repository-collaborator/test.js index fba8725a..cb695125 100644 --- a/scenarios/api.github.com/add-and-remove-repository-collaborator/test.js +++ b/scenarios/api.github.com/add-and-remove-repository-collaborator/test.js @@ -1,6 +1,6 @@ -const axios = require("axios"); +import axios from "axios"; -const fixtures = require("../../.."); +import fixtures from "../../../index.js"; test("Get repository", async () => { const mock = fixtures.mock( diff --git a/scenarios/api.github.com/add-labels-to-issue/record.js b/scenarios/api.github.com/add-labels-to-issue/record.js index b97b9c11..1d5fba76 100644 --- a/scenarios/api.github.com/add-labels-to-issue/record.js +++ b/scenarios/api.github.com/add-labels-to-issue/record.js @@ -1,7 +1,6 @@ -module.exports = addAndRemoveRepostioryCollaborator; - -const env = require("../../../lib/env"); -const getTemporaryRepository = require("../../../lib/temporary-repository"); +export default addAndRemoveRepostioryCollaborator; +import env from "../../../lib/env.js"; +import getTemporaryRepository from "../../../lib/temporary-repository.js"; // - create issue // - add labels to issue diff --git a/scenarios/api.github.com/add-labels-to-issue/test.js b/scenarios/api.github.com/add-labels-to-issue/test.js index ed098157..22b2abed 100644 --- a/scenarios/api.github.com/add-labels-to-issue/test.js +++ b/scenarios/api.github.com/add-labels-to-issue/test.js @@ -1,6 +1,6 @@ -const axios = require("axios"); +import axios from "axios"; -const fixtures = require("../../.."); +import fixtures from "../../../index.js"; test("Get repository", async () => { const mock = fixtures.mock("api.github.com/add-labels-to-issue"); diff --git a/scenarios/api.github.com/branch-protection/record.js b/scenarios/api.github.com/branch-protection/record.js index 134e7197..aa8b02b6 100644 --- a/scenarios/api.github.com/branch-protection/record.js +++ b/scenarios/api.github.com/branch-protection/record.js @@ -1,7 +1,6 @@ -module.exports = branchProtection; - -const env = require("../../../lib/env"); -const getTemporaryRepository = require("../../../lib/temporary-repository"); +export default branchProtection; +import env from "../../../lib/env.js"; +import getTemporaryRepository from "../../../lib/temporary-repository.js"; async function branchProtection(state) { let error; diff --git a/scenarios/api.github.com/branch-protection/test.js b/scenarios/api.github.com/branch-protection/test.js index 0558fb39..da928197 100644 --- a/scenarios/api.github.com/branch-protection/test.js +++ b/scenarios/api.github.com/branch-protection/test.js @@ -1,6 +1,5 @@ -const axios = require("axios"); - -const fixtures = require("../../.."); +import axios from "axios"; +import fixtures from "../../../index.js"; test("Branch protection", async () => { const mock = fixtures.mock("api.github.com/branch-protection"); diff --git a/scenarios/api.github.com/create-file/record.js b/scenarios/api.github.com/create-file/record.js index 6a5dd915..3046f65a 100644 --- a/scenarios/api.github.com/create-file/record.js +++ b/scenarios/api.github.com/create-file/record.js @@ -1,7 +1,6 @@ -module.exports = createFile; - -const env = require("../../../lib/env"); -const getTemporaryRepository = require("../../../lib/temporary-repository"); +export default createFile; +import env from "../../../lib/env.js"; +import getTemporaryRepository from "../../../lib/temporary-repository.js"; async function createFile(state) { let error; diff --git a/scenarios/api.github.com/create-file/test.js b/scenarios/api.github.com/create-file/test.js index 78655d72..c5ca589c 100644 --- a/scenarios/api.github.com/create-file/test.js +++ b/scenarios/api.github.com/create-file/test.js @@ -1,6 +1,6 @@ -const axios = require("axios"); +import axios from "axios"; -const fixtures = require("../../.."); +import fixtures from "../../../index.js"; test("Create File", async () => { const mock = fixtures.mock("api.github.com/create-file"); diff --git a/scenarios/api.github.com/create-status/record.js b/scenarios/api.github.com/create-status/record.js index eda4d73f..ade4ff15 100644 --- a/scenarios/api.github.com/create-status/record.js +++ b/scenarios/api.github.com/create-status/record.js @@ -1,7 +1,6 @@ -module.exports = createStatus; - -const env = require("../../../lib/env"); -const getTemporaryRepository = require("../../../lib/temporary-repository"); +export default createStatus; +import env from "../../../lib/env.js"; +import getTemporaryRepository from "../../../lib/temporary-repository.js"; async function createStatus(state) { let error; diff --git a/scenarios/api.github.com/create-status/test.js b/scenarios/api.github.com/create-status/test.js index df370489..dc969d6d 100644 --- a/scenarios/api.github.com/create-status/test.js +++ b/scenarios/api.github.com/create-status/test.js @@ -1,6 +1,6 @@ -const axios = require("axios"); +import axios from "axios"; -const fixtures = require("../../.."); +import fixtures from "../../../index.js"; test("Create status", async () => { const mock = fixtures.mock("api.github.com/create-status"); diff --git a/scenarios/api.github.com/errors/record.js b/scenarios/api.github.com/errors/record.js index 7b0ca9a2..ba92133b 100644 --- a/scenarios/api.github.com/errors/record.js +++ b/scenarios/api.github.com/errors/record.js @@ -1,7 +1,6 @@ -module.exports = errors; - -const env = require("../../../lib/env"); -const getTemporaryRepository = require("../../../lib/temporary-repository"); +export default errors; +import env from "../../../lib/env.js"; +import getTemporaryRepository from "../../../lib/temporary-repository.js"; async function errors(state) { let error; diff --git a/scenarios/api.github.com/errors/test.js b/scenarios/api.github.com/errors/test.js index f0570af0..a57b1bb4 100644 --- a/scenarios/api.github.com/errors/test.js +++ b/scenarios/api.github.com/errors/test.js @@ -1,6 +1,6 @@ -const axios = require("axios"); +import axios from "axios"; -const fixtures = require("../../.."); +import fixtures from "../../../index.js"; test("Errors", async () => { expect.assertions(2); diff --git a/scenarios/api.github.com/get-archive/record.js b/scenarios/api.github.com/get-archive/record.js index d98fb61f..2297757b 100644 --- a/scenarios/api.github.com/get-archive/record.js +++ b/scenarios/api.github.com/get-archive/record.js @@ -1,7 +1,6 @@ -module.exports = getArchive; - -const env = require("../../../lib/env"); -const getTemporaryRepository = require("../../../lib/temporary-repository"); +export default getArchive; +import env from "../../../lib/env.js"; +import getTemporaryRepository from "../../../lib/temporary-repository.js"; async function getArchive(state) { let error; diff --git a/scenarios/api.github.com/get-archive/test.js b/scenarios/api.github.com/get-archive/test.js index 308067f7..ac514f92 100644 --- a/scenarios/api.github.com/get-archive/test.js +++ b/scenarios/api.github.com/get-archive/test.js @@ -1,6 +1,6 @@ -const axios = require("axios"); +import axios from "axios"; -const fixtures = require("../../.."); +import fixtures from "../../../index.js"; test("Get archive", async () => { const mock = fixtures.mock("api.github.com/get-archive"); diff --git a/scenarios/api.github.com/get-content/record.js b/scenarios/api.github.com/get-content/record.js index 98b4b6a3..3db41b7d 100644 --- a/scenarios/api.github.com/get-content/record.js +++ b/scenarios/api.github.com/get-content/record.js @@ -1,8 +1,8 @@ -const env = require("../../../lib/env"); +import env from "../../../lib/env.js"; // https://developer.github.com/v3/repos/contents/#get-contents // empty path returns README file if present -module.exports = [ +export default [ { method: "get", url: "/repos/octokit-fixture-org/hello-world/contents/", diff --git a/scenarios/api.github.com/get-content/test.js b/scenarios/api.github.com/get-content/test.js index 78041d75..2c43530c 100644 --- a/scenarios/api.github.com/get-content/test.js +++ b/scenarios/api.github.com/get-content/test.js @@ -1,6 +1,6 @@ -const axios = require("axios"); +import axios from "axios"; -const fixtures = require("../../.."); +import fixtures from "../../../index.js"; test("Get repository", async () => { const mock = fixtures.mock("api.github.com/get-content"); diff --git a/scenarios/api.github.com/get-organization/record.js b/scenarios/api.github.com/get-organization/record.js index bf64d8af..e61578f3 100644 --- a/scenarios/api.github.com/get-organization/record.js +++ b/scenarios/api.github.com/get-organization/record.js @@ -1,7 +1,7 @@ -const env = require("../../../lib/env"); +import env from "../../../lib/env.js"; // https://developer.github.com/v3/orgs/#get-an-organization -module.exports = { +export default { method: "get", url: "/orgs/octokit-fixture-org", headers: { diff --git a/scenarios/api.github.com/get-organization/test.js b/scenarios/api.github.com/get-organization/test.js index f920f7d9..15b492c6 100644 --- a/scenarios/api.github.com/get-organization/test.js +++ b/scenarios/api.github.com/get-organization/test.js @@ -1,6 +1,6 @@ -const axios = require("axios"); +import axios from "axios"; -const fixtures = require("../../.."); +import fixtures from "../../../index.js"; test("Get organization", async () => { const mock = fixtures.mock("api.github.com/get-organization"); diff --git a/scenarios/api.github.com/get-repository/record.js b/scenarios/api.github.com/get-repository/record.js index eefba4e4..966579a9 100644 --- a/scenarios/api.github.com/get-repository/record.js +++ b/scenarios/api.github.com/get-repository/record.js @@ -1,7 +1,7 @@ -const env = require("../../../lib/env"); +import env from "../../../lib/env.js"; // https://developer.github.com/v3/repos/#get -module.exports = { +export default { method: "get", url: "/repos/octokit-fixture-org/hello-world", headers: { diff --git a/scenarios/api.github.com/get-repository/test.js b/scenarios/api.github.com/get-repository/test.js index aa975284..619227b4 100644 --- a/scenarios/api.github.com/get-repository/test.js +++ b/scenarios/api.github.com/get-repository/test.js @@ -1,6 +1,6 @@ -const axios = require("axios"); +import axios from "axios"; -const fixtures = require("../../.."); +import fixtures from "../../../index.js"; test("Get repository", async () => { const mock = fixtures.mock("api.github.com/get-repository"); diff --git a/scenarios/api.github.com/get-root/record.js b/scenarios/api.github.com/get-root/record.js index e078ec30..94366fa0 100644 --- a/scenarios/api.github.com/get-root/record.js +++ b/scenarios/api.github.com/get-root/record.js @@ -1,7 +1,7 @@ -const env = require("../../../lib/env"); +import env from "../../../lib/env.js"; // https://developer.github.com/v3/#root-endpoint -module.exports = [ +export default [ { method: "get", url: "/", diff --git a/scenarios/api.github.com/get-root/test.js b/scenarios/api.github.com/get-root/test.js index fcdc2714..d92016af 100644 --- a/scenarios/api.github.com/get-root/test.js +++ b/scenarios/api.github.com/get-root/test.js @@ -1,6 +1,6 @@ -const axios = require("axios"); +import axios from "axios"; -const fixtures = require("../../.."); +import fixtures from "../../../index.js"; test("Get repository", async () => { const mock = fixtures.mock("api.github.com/get-root"); diff --git a/scenarios/api.github.com/git-refs/record.js b/scenarios/api.github.com/git-refs/record.js index 355f64c1..25883a97 100644 --- a/scenarios/api.github.com/git-refs/record.js +++ b/scenarios/api.github.com/git-refs/record.js @@ -1,7 +1,6 @@ -module.exports = gitRefs; - -const env = require("../../../lib/env"); -const getTemporaryRepository = require("../../../lib/temporary-repository"); +export default gitRefs; +import env from "../../../lib/env.js"; +import getTemporaryRepository from "../../../lib/temporary-repository.js"; async function gitRefs(state) { let error; diff --git a/scenarios/api.github.com/git-refs/test.js b/scenarios/api.github.com/git-refs/test.js index bdb21ce6..94acceb4 100644 --- a/scenarios/api.github.com/git-refs/test.js +++ b/scenarios/api.github.com/git-refs/test.js @@ -1,6 +1,6 @@ -const axios = require("axios"); +import axios from "axios"; -const fixtures = require("../../.."); +import fixtures from "../../../index.js"; test("Git references", async () => { const mock = fixtures.mock("api.github.com/git-refs"); diff --git a/scenarios/api.github.com/labels/record.js b/scenarios/api.github.com/labels/record.js index d52f8e01..54ba21c5 100644 --- a/scenarios/api.github.com/labels/record.js +++ b/scenarios/api.github.com/labels/record.js @@ -1,7 +1,6 @@ -module.exports = labels; - -const env = require("../../../lib/env"); -const getTemporaryRepository = require("../../../lib/temporary-repository"); +export default labels; +import env from "../../../lib/env.js"; +import getTemporaryRepository from "../../../lib/temporary-repository.js"; async function labels(state) { let error; diff --git a/scenarios/api.github.com/labels/test.js b/scenarios/api.github.com/labels/test.js index 66e83bbc..8ca5fbc7 100644 --- a/scenarios/api.github.com/labels/test.js +++ b/scenarios/api.github.com/labels/test.js @@ -1,6 +1,6 @@ -const axios = require("axios"); +import axios from "axios"; -const fixtures = require("../../.."); +import fixtures from "../../../index.js"; test("Labels", async () => { const mock = fixtures.mock("api.github.com/labels"); diff --git a/scenarios/api.github.com/lock-issue/record.js b/scenarios/api.github.com/lock-issue/record.js index 85eba858..8c220da1 100644 --- a/scenarios/api.github.com/lock-issue/record.js +++ b/scenarios/api.github.com/lock-issue/record.js @@ -1,7 +1,6 @@ -module.exports = lockIssue; - -const env = require("../../../lib/env"); -const getTemporaryRepository = require("../../../lib/temporary-repository"); +export default lockIssue; +import env from "../../../lib/env.js"; +import getTemporaryRepository from "../../../lib/temporary-repository.js"; async function lockIssue(state) { let error; diff --git a/scenarios/api.github.com/lock-issue/test.js b/scenarios/api.github.com/lock-issue/test.js index 63cefbbf..c5918fd6 100644 --- a/scenarios/api.github.com/lock-issue/test.js +++ b/scenarios/api.github.com/lock-issue/test.js @@ -1,6 +1,6 @@ -const axios = require("axios"); +import axios from "axios"; -const fixtures = require("../../.."); +import fixtures from "../../../index.js"; test("Lock issues", async () => { const mock = fixtures.mock("api.github.com/lock-issue"); diff --git a/scenarios/api.github.com/mark-notifications-as-read/record.js b/scenarios/api.github.com/mark-notifications-as-read/record.js index a645441e..c4439ed9 100644 --- a/scenarios/api.github.com/mark-notifications-as-read/record.js +++ b/scenarios/api.github.com/mark-notifications-as-read/record.js @@ -1,6 +1,5 @@ -module.exports = markNotificationsAsRead; - -const env = require("../../../lib/env"); +export default markNotificationsAsRead; +import env from "../../../lib/env.js"; // https://developer.github.com/v3/activity/notifications/#mark-as-read async function markNotificationsAsRead(state) { diff --git a/scenarios/api.github.com/mark-notifications-as-read/test.js b/scenarios/api.github.com/mark-notifications-as-read/test.js index abd3fa90..d529f6b3 100644 --- a/scenarios/api.github.com/mark-notifications-as-read/test.js +++ b/scenarios/api.github.com/mark-notifications-as-read/test.js @@ -1,6 +1,6 @@ -const axios = require("axios"); +import axios from "axios"; -const fixtures = require("../../.."); +import fixtures from "../../../index.js"; test("Labels", async () => { const mock = fixtures.mock("api.github.com/mark-notifications-as-read"); diff --git a/scenarios/api.github.com/markdown/record.js b/scenarios/api.github.com/markdown/record.js index 7117ae12..5643ece9 100644 --- a/scenarios/api.github.com/markdown/record.js +++ b/scenarios/api.github.com/markdown/record.js @@ -1,7 +1,7 @@ -const env = require("../../../lib/env"); +import env from "../../../lib/env.js"; // https://developer.github.com/v3/markdown/ -module.exports = [ +export default [ { method: "post", url: "/markdown", diff --git a/scenarios/api.github.com/markdown/test.js b/scenarios/api.github.com/markdown/test.js index 1b45965f..d73c3360 100644 --- a/scenarios/api.github.com/markdown/test.js +++ b/scenarios/api.github.com/markdown/test.js @@ -1,6 +1,6 @@ -const axios = require("axios"); +import axios from "axios"; -const fixtures = require("../../.."); +import fixtures from "../../../index.js"; test("Get repository", async () => { const mock = fixtures.mock("api.github.com/markdown"); diff --git a/scenarios/api.github.com/paginate-issues/record.js b/scenarios/api.github.com/paginate-issues/record.js index c900fdb5..76666e08 100644 --- a/scenarios/api.github.com/paginate-issues/record.js +++ b/scenarios/api.github.com/paginate-issues/record.js @@ -1,7 +1,6 @@ -module.exports = paginateIssues; - -const env = require("../../../lib/env"); -const getTemporaryRepository = require("../../../lib/temporary-repository"); +export default paginateIssues; +import env from "../../../lib/env.js"; +import getTemporaryRepository from "../../../lib/temporary-repository.js"; async function paginateIssues(state) { let error; diff --git a/scenarios/api.github.com/paginate-issues/test.js b/scenarios/api.github.com/paginate-issues/test.js index 6e0612e3..a5eb759b 100644 --- a/scenarios/api.github.com/paginate-issues/test.js +++ b/scenarios/api.github.com/paginate-issues/test.js @@ -1,6 +1,6 @@ -const axios = require("axios"); +import axios from "axios"; -const fixtures = require("../../.."); +import fixtures from "../../../index.js"; test("paginate issues", async () => { const mock = fixtures.mock("api.github.com/paginate-issues"); @@ -23,7 +23,7 @@ test("paginate issues", async () => { "https://api.github.com/repositories/1000/issues?per_page=3&page=5", ]; - for (var i = 0; i < urls.length; i++) { + for (let i = 0; i < urls.length; i++) { await axios .request( Object.assign(options, { diff --git a/scenarios/api.github.com/project-cards/record.js b/scenarios/api.github.com/project-cards/record.js index 52335642..aec73760 100644 --- a/scenarios/api.github.com/project-cards/record.js +++ b/scenarios/api.github.com/project-cards/record.js @@ -1,7 +1,6 @@ -module.exports = lockIssue; - -const env = require("../../../lib/env"); -const getTemporaryRepository = require("../../../lib/temporary-repository"); +export default lockIssue; +import env from "../../../lib/env.js"; +import getTemporaryRepository from "../../../lib/temporary-repository.js"; async function lockIssue(state) { let error; diff --git a/scenarios/api.github.com/project-cards/test.js b/scenarios/api.github.com/project-cards/test.js index 27defcf4..9c79295b 100644 --- a/scenarios/api.github.com/project-cards/test.js +++ b/scenarios/api.github.com/project-cards/test.js @@ -1,6 +1,6 @@ -const axios = require("axios"); +import axios from "axios"; -const fixtures = require("../../.."); +import fixtures from "../../../index.js"; test("Labels", async () => { const mock = fixtures.mock("api.github.com/project-cards"); diff --git a/scenarios/api.github.com/release-assets-conflict/record.js b/scenarios/api.github.com/release-assets-conflict/record.js index 7606b446..3f282fb5 100644 --- a/scenarios/api.github.com/release-assets-conflict/record.js +++ b/scenarios/api.github.com/release-assets-conflict/record.js @@ -1,9 +1,7 @@ -module.exports = releaseAssetsConflict; - -const urlTemplate = require("url-template"); - -const env = require("../../../lib/env"); -const getTemporaryRepository = require("../../../lib/temporary-repository"); +export default releaseAssetsConflict; +import urlTemplate from "url-template"; +import env from "../../../lib/env.js"; +import getTemporaryRepository from "../../../lib/temporary-repository.js"; async function releaseAssetsConflict(state) { let error; diff --git a/scenarios/api.github.com/release-assets-conflict/test.js b/scenarios/api.github.com/release-assets-conflict/test.js index 59ba366e..d9ebffe7 100644 --- a/scenarios/api.github.com/release-assets-conflict/test.js +++ b/scenarios/api.github.com/release-assets-conflict/test.js @@ -1,6 +1,6 @@ -const axios = require("axios"); +import axios from "axios"; -const fixtures = require("../../.."); +import fixtures from "../../../index.js"; test("Labels", async () => { expect.assertions(2); diff --git a/scenarios/api.github.com/release-assets/record.js b/scenarios/api.github.com/release-assets/record.js index 74cfcbd0..1f0a81ba 100644 --- a/scenarios/api.github.com/release-assets/record.js +++ b/scenarios/api.github.com/release-assets/record.js @@ -1,12 +1,12 @@ -module.exports = releaseAssets; +export default releaseAssets; -const fs = require("fs"); -const pathResolve = require("path").resolve; +import fs from "fs"; +import { resolve as pathResolve, dirname } from "path"; +import { fileURLToPath } from "url"; -const urlTemplate = require("url-template"); - -const env = require("../../../lib/env"); -const getTemporaryRepository = require("../../../lib/temporary-repository"); +import urlTemplate from "url-template"; +import env from "../../../lib/env.js"; +import getTemporaryRepository from "../../../lib/temporary-repository.js"; async function releaseAssets(state) { let error; @@ -75,7 +75,10 @@ async function releaseAssets(state) { // https://developer.github.com/v3/repos/releases/#upload-a-release-asset // upload attachment to release URL returned by create release request const FILE_NAME = "test-upload.txt"; - const filePath = pathResolve(__dirname, FILE_NAME); + const filePath = pathResolve( + dirname(fileURLToPath(import.meta.url)), + FILE_NAME + ); const url = urlTemplate.parse(uploadUrl).expand({ name: FILE_NAME, label: "test", diff --git a/scenarios/api.github.com/release-assets/test.js b/scenarios/api.github.com/release-assets/test.js index a9ba83c3..ab01398b 100644 --- a/scenarios/api.github.com/release-assets/test.js +++ b/scenarios/api.github.com/release-assets/test.js @@ -1,6 +1,6 @@ -const axios = require("axios"); +import axios from "axios"; -const fixtures = require("../../.."); +import fixtures from "../../../index.js"; test("Labels", async () => { const mock = fixtures.mock("api.github.com/release-assets"); diff --git a/scenarios/api.github.com/rename-repository/record.js b/scenarios/api.github.com/rename-repository/record.js index def75299..68a5f366 100644 --- a/scenarios/api.github.com/rename-repository/record.js +++ b/scenarios/api.github.com/rename-repository/record.js @@ -1,7 +1,6 @@ -module.exports = renameRepository; - -const env = require("../../../lib/env"); -const getTemporaryRepository = require("../../../lib/temporary-repository"); +export default renameRepository; +import env from "../../../lib/env.js"; +import getTemporaryRepository from "../../../lib/temporary-repository.js"; async function renameRepository(state) { let error; diff --git a/scenarios/api.github.com/rename-repository/test.js b/scenarios/api.github.com/rename-repository/test.js index 94d63785..b5d7c681 100644 --- a/scenarios/api.github.com/rename-repository/test.js +++ b/scenarios/api.github.com/rename-repository/test.js @@ -1,6 +1,6 @@ -const axios = require("axios"); +import axios from "axios"; -const fixtures = require("../../.."); +import fixtures from "../../../index.js"; test("Labels", async () => { const mock = fixtures.mock("api.github.com/rename-repository"); diff --git a/scenarios/api.github.com/search-issues/record.js b/scenarios/api.github.com/search-issues/record.js index 04b8cae2..1780949f 100644 --- a/scenarios/api.github.com/search-issues/record.js +++ b/scenarios/api.github.com/search-issues/record.js @@ -1,7 +1,6 @@ -module.exports = searchIssues; - -const env = require("../../../lib/env"); -const getTemporaryRepository = require("../../../lib/temporary-repository"); +export default searchIssues; +import env from "../../../lib/env.js"; +import getTemporaryRepository from "../../../lib/temporary-repository.js"; async function searchIssues(state) { let error; diff --git a/scenarios/api.github.com/search-issues/test.js b/scenarios/api.github.com/search-issues/test.js index b21262bf..4a3a87d6 100644 --- a/scenarios/api.github.com/search-issues/test.js +++ b/scenarios/api.github.com/search-issues/test.js @@ -1,6 +1,6 @@ -const axios = require("axios"); +import axios from "axios"; -const fixtures = require("../../.."); +import fixtures from "../../../index.js"; test("Labels", async () => { const mock = fixtures.mock("api.github.com/search-issues"); diff --git a/test/integration/additions.test.js b/test/integration/additions.test.js index e73e2f58..c19346b7 100644 --- a/test/integration/additions.test.js +++ b/test/integration/additions.test.js @@ -1,7 +1,8 @@ -const _ = require("lodash"); -const axios = require("axios"); +import isObject from "lodash/isObject.js"; +import mapValues from "lodash/mapValues.js"; +import axios from "axios"; -const fixtures = require("../.."); +import fixtures from "../../index.js"; test("reqheaders additions", async () => { const mock = fixtures.mock("api.github.com/get-repository", { @@ -80,9 +81,7 @@ test("scope additions", async () => { test("additions function", async () => { const mapValuesDeep = (v, callback) => - _.isObject(v) - ? _.mapValues(v, (v) => mapValuesDeep(v, callback)) - : callback(v); + isObject(v) ? mapValues(v, (v) => mapValuesDeep(v, callback)) : callback(v); const mock = fixtures.mock("api.github.com/release-assets", (fixture) => { if (fixture.scope === "https://uploads.github.com:443") { fixture.path = `/uploads.github.com${fixture.path}`; diff --git a/test/integration/normalize.test.js b/test/integration/normalize.test.js index d14ffc3e..accbe2f1 100644 --- a/test/integration/normalize.test.js +++ b/test/integration/normalize.test.js @@ -1,22 +1,29 @@ -const glob = require("glob"); +import glob from "glob"; +import { readFileSync } from "fs"; -const normalize = require("../../lib/normalize"); +import normalize from "../../lib/normalize/index.js"; glob .sync("scenarios/**/raw-fixture.json") .map((path) => path.replace(/(^scenarios\/|\/raw-fixture.json$)/g, "")) .forEach((fixturnName) => { test(`normalize ${fixturnName}`, async () => { - const raw = require(`../../scenarios/${fixturnName}/raw-fixture.json`); - const expected = require(`../../scenarios/${fixturnName}/normalized-fixture.json`); + const raw = JSON.parse( + readFileSync(`./scenarios/${fixturnName}/raw-fixture.json`) + ); + const expected = JSON.parse( + readFileSync(`./scenarios/${fixturnName}/normalized-fixture.json`) + ); const scenarioState = { commitSha: {}, ids: {}, }; - const actual = await Promise.all( - raw.filter(isntIgnored).map(normalize.bind(null, scenarioState)) - ); + const actual = []; + for (let item of raw.filter(isntIgnored)) { + let result = await normalize.bind(null, scenarioState)(item); + actual.push(result); + } expect(actual).toEqual(expected); }); }); diff --git a/test/integration/smoke.test.js b/test/integration/smoke.test.js index f5b1e0a9..78a4e25b 100644 --- a/test/integration/smoke.test.js +++ b/test/integration/smoke.test.js @@ -1,10 +1,15 @@ -const axios = require("axios"); +import axios from "axios"; -const fixtures = require("../.."); +import fixtures from "../.."; +import { readFileSync } from "fs"; test("Accepts fixtures object as argument", async () => { fixtures.mock( - require("../../scenarios/api.github.com/get-repository/normalized-fixture.json") + JSON.parse( + readFileSync( + "./scenarios/api.github.com/get-repository/normalized-fixture.json" + ) + ) ); const result = await axios({ diff --git a/test/unit/fixturize-commit-sha.test.js b/test/unit/fixturize-commit-sha.test.js index b3fb736c..f2786307 100644 --- a/test/unit/fixturize-commit-sha.test.js +++ b/test/unit/fixturize-commit-sha.test.js @@ -1,4 +1,4 @@ -const fixturizeCommitSha = require("../../lib/fixturize-commit-sha"); +import fixturizeCommitSha from "../../lib/fixturize-commit-sha.js"; test("fixturizeCommitSha for fixturized sha", () => { const map = { diff --git a/test/unit/set-if-exists.test.js b/test/unit/set-if-exists.test.js index ec4d87b3..f5c02ff8 100644 --- a/test/unit/set-if-exists.test.js +++ b/test/unit/set-if-exists.test.js @@ -1,4 +1,4 @@ -const setIfExists = require("../../lib/set-if-exists"); +import setIfExists from "../../lib/set-if-exists"; test("setIfExists accepts undefined as object argument", () => { const result = setIfExists(undefined, "foo", "bar"); diff --git a/test/unit/temporary-repository.test.js b/test/unit/temporary-repository.test.js index e3968064..d30790ec 100644 --- a/test/unit/temporary-repository.test.js +++ b/test/unit/temporary-repository.test.js @@ -1,4 +1,4 @@ -const temporaryRepository = require("../../lib/temporary-repository"); +import temporaryRepository, { regex } from "../../lib/temporary-repository.js"; test("temporaryRepository(name) returns {create, delete} API", () => { const options = {}; @@ -14,17 +14,17 @@ test("temporaryRepository(name) returns {name}", () => { }; const api = temporaryRepository(options); - expect(api.name).toMatch(temporaryRepository.regex); + expect(api.name).toMatch(regex); // `"${api.name}" matches tmp repository name regex` }); test("temporaryRepository.regex", () => { const { name } = temporaryRepository({ name: "funky-repo" }); - const [, originalName] = name.match(temporaryRepository.regex); + const [, originalName] = name.match(regex); expect(originalName).toBe("funky-repo"); - expect( - `/repos/org-foo/${name}`.replace(temporaryRepository.regex, "$1") - ).toBe("/repos/org-foo/funky-repo"); + expect(`/repos/org-foo/${name}`.replace(regex, "$1")).toBe( + "/repos/org-foo/funky-repo" + ); }); test("temporaryRepository(name).create() sends POST /orgs/octokit-fixture-org/repos request", () => {