tasq/node_modules/import-in-the-middle/test/hook/default-export.mjs

87 lines
3.3 KiB
JavaScript

// Unless explicitly stated otherwise all files in this repository are licensed under the Apache 2.0 License.
//
// This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2021 Datadog, Inc.
import Hook from '../../index.js'
import a from '../fixtures/export-types/default-expression-array.mjs'
import n from '../fixtures/export-types/default-expression-num.mjs'
import s from '../fixtures/export-types/default-expression-string.mjs'
import fn from '../fixtures/export-types/default-function.mjs'
import cn from '../fixtures/export-types/default-class.mjs'
import gfn from '../fixtures/export-types/default-generator.mjs'
import afn from '../fixtures/export-types/default-function-anon.mjs'
import acn from '../fixtures/export-types/default-class-anon.mjs'
import agfn from '../fixtures/export-types/default-generator-anon.mjs'
import callEx from '../fixtures/export-types/default-call-expression.mjs'
import { somethingElse } from '../fixtures/export-types/default-call-expression-renamed.mjs'
import defaultImportExport from '../fixtures/export-types/import-default-export.mjs'
import varDefaultExport from '../fixtures/export-types/variable-default-export.mjs'
import { strictEqual } from 'assert'
Hook((exports, name) => {
if (name.match(/default-expression-array\.m?js/)) {
exports.default[0] += 1
} else if (name.match(/default-expression-num\.m?js/)) {
exports.default += 1
} else if (name.match(/default-expression-string\.m?js/)) {
exports.default += 'dawg'
} else if (name.match(/default-function\.m?js/)) {
const orig = exports.default
exports.default = function () {
return orig() + 1
}
} else if (name.match(/default-class\.m?js/)) {
exports.default.prototype.getFoo = function () {
return 2
}
} else if (name.match(/default-generator\.m?js/)) {
const orig2 = exports.default
exports.default = function * () {
return orig2().next().value + 1
}
} else if (name.match(/default-function-anon\.m?js/)) {
const orig = exports.default
exports.default = function () {
return orig() + 1
}
} else if (name.match(/default-class-anon\.m?js/)) {
exports.default.prototype.getFoo = function () {
return 2
}
} else if (name.match(/default-generator-anon\.m?js/)) {
const orig2 = exports.default
exports.default = function * () {
return orig2().next().value + 1
}
} else if (name.match(/import-default-export\.m?js/)) {
const orig3 = exports.default
exports.default = function () {
return orig3() + 1
}
} else if (name.match(/variable-default-export\.m?js/)) {
const orig4 = exports.default
exports.default = function () {
return orig4() + 1
}
} else if (name.match(/default-call-expression\.m?js/)) {
exports.default += 1
} else if (name.match(/default-call-expression-renamed\.m?js/)) {
exports.somethingElse += 1
}
})
/* eslint-disable new-cap */
strictEqual(defaultImportExport(), 2)
strictEqual(varDefaultExport(), 2)
strictEqual(a[0], 2)
strictEqual(fn(), 2)
strictEqual(new cn().getFoo(), 2)
strictEqual(gfn().next().value, 2)
strictEqual(afn(), 2)
strictEqual(new acn().getFoo(), 2)
strictEqual(agfn().next().value, 2)
strictEqual(n, 2)
strictEqual(s, 'dogdawg')
strictEqual(callEx, 2)
strictEqual(somethingElse, 2)