diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index 9b5eb36..38b2d5c 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -69,6 +69,8 @@ jobs: logTime: "false" - run: curl -vvvv http://localhost:3000/pages/AMD.html && cat log.txt + - run: curl -vvvv http://localhost:3000/pages/ESM.html && cat log.txt + - run: curl -vvvv http://localhost:3000/pages/ESM-dynamic.html && cat log.txt - name: Run Browser integration tests run: npm run test:integration:browser diff --git a/tests/integration/browser/tests/esm-dynamic/import.test.ts b/tests/integration/browser/tests/esm-dynamic/import.test.ts index 16e3ba0..37aa8a6 100644 --- a/tests/integration/browser/tests/esm-dynamic/import.test.ts +++ b/tests/integration/browser/tests/esm-dynamic/import.test.ts @@ -20,18 +20,19 @@ type Window = globalThis.Window & { describe('AMD import validation', () => { beforeAll(async () => { - await page.goto('http://localhost:3000/pages/ESM.html'); + await page.goto('http://localhost:3000/pages/ESM-dynamic.html'); await page.waitForFunction(function () { return typeof (window as Window).mailgunClient !== 'undefined'; }); await page.waitForFunction(function () { return typeof (window as Window).packageExport !== 'undefined'; }); await page.waitForFunction(function () { return typeof (window as Window).definitionsExport !== 'undefined'; }); }); - test('AMD package exports function', async () => { - const isFunction = await page.evaluate(() => (typeof (window as Window).packageExport === 'function')); - expect(isFunction).toBe(true); + test('ESM-dynamic package exports object', async () => { + const exported = await page.evaluate(() => ((window as Window).packageExport)); + expect(exported).toEqual(expect.any(Object)); + expect(exported).toHaveProperty('default'); }); - test('AMD definitions exports object', async () => { + test('ESM-dynamic definitions exports object', async () => { const definitionsExport = await page.evaluate(() => (window as Window).definitionsExport); expect(typeof definitionsExport).toBe('object'); expect(definitionsExport).toEqual(expect.objectContaining({ @@ -40,7 +41,7 @@ describe('AMD import validation', () => { })); }); - test('AMD client has expected structure', async () => { + test('ESM-dynamic client has expected structure', async () => { const client = await page.evaluate(() => (window as Window).mailgunClient); const expected = ['request', 'domains', 'webhooks', 'events', 'stats', 'suppressions', 'messages', 'routes', 'ips', 'ip_pools', 'lists', 'validate']; expect(client).toBeDefined(); diff --git a/tests/integration/browser/tests/esm-dynamic/messages.test.ts b/tests/integration/browser/tests/esm-dynamic/messages.test.ts index f91ce86..4e13b1d 100644 --- a/tests/integration/browser/tests/esm-dynamic/messages.test.ts +++ b/tests/integration/browser/tests/esm-dynamic/messages.test.ts @@ -17,9 +17,9 @@ type ExtendedWindow = globalThis.Window & { packageExport?: object }; -describe('Send message functionality (AMD)', () => { +describe('Send message functionality (ESM-dynamic)', () => { beforeAll(async () => { - await page.goto('http://localhost:3000/pages/ESM.html'); + await page.goto('http://localhost:3000/pages/ESM-dynamic.html'); await page.waitForFunction(function () { return typeof (window as ExtendedWindow).mailgunClient !== 'undefined'; }); await page.setRequestInterception(true); @@ -41,7 +41,7 @@ describe('Send message functionality (AMD)', () => { await page.setRequestInterception(false); }); - test('Sends plain email (AMD)', async () => { + test('Sends plain email (ESM-dynamic)', async () => { const result = await page.evaluate( (domain, messageData) => (window as ExtendedWindow)?.mailgunClient?.messages.create( domain, @@ -62,7 +62,7 @@ describe('Send message functionality (AMD)', () => { }); }); - test('Sends mime email (AMD)', async () => { + test('Sends mime email (ESM-dynamic)', async () => { const result = await page.evaluate( (domain, messageData) => (window as ExtendedWindow).mailgunClient?.messages.create( domain, @@ -83,7 +83,7 @@ describe('Send message functionality (AMD)', () => { }); }); - test('Sends an attachment (AMD)', async () => { + test('Sends an attachment (ESM-dynamic)', async () => { await page.waitForSelector('input[type=file]', { timeout: 3000 }); const input = await page.$('input[type=file]'); expect(input).toBeTruthy(); diff --git a/tests/integration/browser/tests/esm/import.test.ts b/tests/integration/browser/tests/esm/import.test.ts index 16e3ba0..940ee52 100644 --- a/tests/integration/browser/tests/esm/import.test.ts +++ b/tests/integration/browser/tests/esm/import.test.ts @@ -26,12 +26,12 @@ describe('AMD import validation', () => { await page.waitForFunction(function () { return typeof (window as Window).definitionsExport !== 'undefined'; }); }); - test('AMD package exports function', async () => { + test('ESM package exports function', async () => { const isFunction = await page.evaluate(() => (typeof (window as Window).packageExport === 'function')); expect(isFunction).toBe(true); }); - test('AMD definitions exports object', async () => { + test('ESM definitions exports object', async () => { const definitionsExport = await page.evaluate(() => (window as Window).definitionsExport); expect(typeof definitionsExport).toBe('object'); expect(definitionsExport).toEqual(expect.objectContaining({ @@ -40,7 +40,7 @@ describe('AMD import validation', () => { })); }); - test('AMD client has expected structure', async () => { + test('ESM client has expected structure', async () => { const client = await page.evaluate(() => (window as Window).mailgunClient); const expected = ['request', 'domains', 'webhooks', 'events', 'stats', 'suppressions', 'messages', 'routes', 'ips', 'ip_pools', 'lists', 'validate']; expect(client).toBeDefined(); diff --git a/tests/integration/browser/tests/esm/messages.test.ts b/tests/integration/browser/tests/esm/messages.test.ts index e38e7d3..9a3866f 100644 --- a/tests/integration/browser/tests/esm/messages.test.ts +++ b/tests/integration/browser/tests/esm/messages.test.ts @@ -17,9 +17,9 @@ type ExtendedWindow = globalThis.Window & { packageExport?: object }; -describe('Send message functionality (AMD)', () => { +describe('Send message functionality (ESM)', () => { beforeAll(async () => { - await page.goto('http://localhost:3000/pages/esm-dynamic.html'); + await page.goto('http://localhost:3000/pages/ESM.html'); await page.waitForFunction(function () { return typeof (window as ExtendedWindow).mailgunClient !== 'undefined'; }); await page.setRequestInterception(true); @@ -41,7 +41,7 @@ describe('Send message functionality (AMD)', () => { await page.setRequestInterception(false); }); - test('Sends plain email (AMD)', async () => { + test('Sends plain email (ESM)', async () => { const result = await page.evaluate( (domain, messageData) => (window as ExtendedWindow)?.mailgunClient?.messages.create( domain, @@ -62,7 +62,7 @@ describe('Send message functionality (AMD)', () => { }); }); - test('Sends mime email (AMD)', async () => { + test('Sends mime email (ESM)', async () => { const result = await page.evaluate( (domain, messageData) => (window as ExtendedWindow).mailgunClient?.messages.create( domain, @@ -83,7 +83,7 @@ describe('Send message functionality (AMD)', () => { }); }); - test('Sends an attachment (AMD)', async () => { + test('Sends an attachment (ESM)', async () => { await page.waitForSelector('input[type=file]', { timeout: 3000 }); const input = await page.$('input[type=file]'); expect(input).toBeTruthy();