import * as asserts from '@std/assert'; import { EPHEMERAL_SERVER, get_ephemeral_listen_server } from './helpers.ts'; Deno.test({ name: 'get html file', permissions: { env: true, read: true, write: true, net: true }, fn: async () => { let test_server_info: EPHEMERAL_SERVER | null = null; const cwd = Deno.cwd(); try { Deno.chdir('./tests/www'); test_server_info = await get_ephemeral_listen_server(); const response = await fetch(`http://${test_server_info.hostname}:${test_server_info.port}/includes/index.html`, { method: 'GET' }); const body = await response.text(); asserts.assert(response.ok); asserts.assert(body); asserts.assertMatch(body, /\.*?Include #1.*?Include #2.*?\<\/html\>/is); } finally { Deno.chdir(cwd); if (test_server_info) { await test_server_info?.server?.stop(); } } } }); Deno.test({ name: 'get html file (text/plain) (also test automatic index.html)', permissions: { env: true, read: true, write: true, net: true }, fn: async () => { let test_server_info: EPHEMERAL_SERVER | null = null; const cwd = Deno.cwd(); try { Deno.chdir('./tests/www'); test_server_info = await get_ephemeral_listen_server(); const response = await fetch(`http://${test_server_info.hostname}:${test_server_info.port}/includes`, { method: 'GET', headers: { 'Accept': 'text/plain' } }); const body = await response.text(); asserts.assert(response.ok); asserts.assert(body); asserts.assertMatch(body, /\.*?Include #1.*?Include #2.*?\<\/html\>/is); } finally { Deno.chdir(cwd); if (test_server_info) { await test_server_info?.server?.stop(); } } } }); Deno.test({ name: 'get html file with markdown included', permissions: { env: true, read: true, write: true, net: true }, fn: async () => { let test_server_info: EPHEMERAL_SERVER | null = null; const cwd = Deno.cwd(); try { Deno.chdir('./tests/www'); test_server_info = await get_ephemeral_listen_server(); const response = await fetch(`http://${test_server_info.hostname}:${test_server_info.port}/includes/with_markdown.html`); const body = await response.text(); asserts.assert(response.ok); asserts.assert(body); asserts.assertMatch(body, /\.*?\This is Markdown\<\/h1\>.*?\<\/html\>/is); } finally { Deno.chdir(cwd); if (test_server_info) { await test_server_info?.server?.stop(); } } } }); Deno.test({ name: 'get html file with text included', permissions: { env: true, read: true, write: true, net: true }, fn: async () => { let test_server_info: EPHEMERAL_SERVER | null = null; const cwd = Deno.cwd(); try { Deno.chdir('./tests/www'); test_server_info = await get_ephemeral_listen_server(); const response = await fetch(`http://${test_server_info.hostname}:${test_server_info.port}/includes/with_text.html`); const body = await response.text(); asserts.assert(response.ok); asserts.assert(body); asserts.assertMatch(body, /\.*?Just some random text in a random text file\..*?\<\/html\>/is); } finally { Deno.chdir(cwd); if (test_server_info) { await test_server_info?.server?.stop(); } } } }); Deno.test({ name: 'get html file with lots of includes', permissions: { env: true, read: true, write: true, net: true }, fn: async () => { let test_server_info: EPHEMERAL_SERVER | null = null; const cwd = Deno.cwd(); try { Deno.chdir('./tests/www'); test_server_info = await get_ephemeral_listen_server(); const response = await fetch( `http://${test_server_info.hostname}:${test_server_info.port}/includes/with_lots_of_includes.html` ); const body = await response.text(); asserts.assert(response.ok); asserts.assert(body); asserts.assertEquals( body, `

Hello. Markdown should follow:

This is Markdown


Welcome to it.

This is a level 2 heading


Can you read this?

Let's go deeper, level 3 heading


  • this

  • is

  • a

  • list?


How about a table?


| column 1 | column 2 | | -------- | -------- | | hi | hey | | hoy | hah |

Ok, that seems sufficient?


Hardly, but we'll get back to this. Just some random text in a random text file.
Include #1
Include #2!
Include #3

Goodbye. The include should be above.

` ); } finally { Deno.chdir(cwd); if (test_server_info) { await test_server_info?.server?.stop(); } } } });