import { describe, expect, test } from "bun:test"; import * as WithTypeModuleExportEsModuleAnnotationMissingDefault from "./with-type-module/export-esModule-annotation-empty.cjs"; import * as WithTypeModuleExportEsModuleAnnotationNoDefault from "./with-type-module/export-esModule-annotation-no-default.cjs"; import * as WithTypeModuleExportEsModuleAnnotation from "./with-type-module/export-esModule-annotation.cjs"; import * as WithTypeModuleExportEsModuleNoAnnotation from "./with-type-module/export-esModule-no-annotation.cjs"; import * as WithoutTypeModuleExportEsModuleAnnotationMissingDefault from "./without-type-module/export-esModule-annotation-empty.cjs"; import * as WithoutTypeModuleExportEsModuleAnnotationNoDefault from "./without-type-module/export-esModule-annotation-no-default.cjs"; import * as WithoutTypeModuleExportEsModuleAnnotation from "./without-type-module/export-esModule-annotation.cjs"; import * as WithoutTypeModuleExportEsModuleNoAnnotation from "./without-type-module/export-esModule-no-annotation.cjs"; describe('without type: "module"', () => { test("module.exports = {}", () => { expect(WithoutTypeModuleExportEsModuleAnnotationMissingDefault.default).toEqual({}); expect(WithoutTypeModuleExportEsModuleAnnotationMissingDefault.__esModule).toBeUndefined(); }); test("exports.__esModule = true", () => { expect(WithoutTypeModuleExportEsModuleAnnotationNoDefault.default).toEqual({ __esModule: true, }); // The module namespace object will not have the __esModule property. expect(WithoutTypeModuleExportEsModuleAnnotationNoDefault.__esModule).toBeUndefined(); }); test("exports.default = true; exports.__esModule = true;", () => { expect(WithoutTypeModuleExportEsModuleAnnotation.default).toBeTrue(); expect(WithoutTypeModuleExportEsModuleAnnotation.__esModule).toBeUndefined(); }); test("exports.default = true;", () => { expect(WithoutTypeModuleExportEsModuleNoAnnotation.default).toEqual({ default: true, }); expect(WithoutTypeModuleExportEsModuleAnnotation.__esModule).toBeUndefined(); }); }); describe('with type: "module"', () => { test("module.exports = {}", () => { expect(WithTypeModuleExportEsModuleAnnotationMissingDefault.default).toEqual({}); expect(WithTypeModuleExportEsModuleAnnotationMissingDefault.__esModule).toBeUndefined(); }); test("exports.__esModule = true", () => { expect(WithTypeModuleExportEsModuleAnnotationNoDefault.default).toEqual({ __esModule: true, }); // The module namespace object WILL have the __esModule property. expect(WithTypeModuleExportEsModuleAnnotationNoDefault.__esModule).toBeTrue(); }); test("exports.default = true; exports.__esModule = true;", () => { expect(WithTypeModuleExportEsModuleAnnotation.default).toEqual({ default: true, __esModule: true, }); expect(WithTypeModuleExportEsModuleAnnotation.__esModule).toBeTrue(); }); test("exports.default = true;", () => { expect(WithTypeModuleExportEsModuleNoAnnotation.default).toEqual({ default: true, }); expect(WithTypeModuleExportEsModuleAnnotation.__esModule).toBeTrue(); }); });