summaryrefslogtreecommitdiff
path: root/test/hmx-basic.test.js
diff options
context:
space:
mode:
authorGravatar Matthew Phillips <matthew@matthewphillips.info> 2021-03-19 17:07:45 -0400
committerGravatar GitHub <noreply@github.com> 2021-03-19 17:07:45 -0400
commit17c3c98f07628b43b941b84831e8e1f9bcd7ca46 (patch)
tree2e2b3c7d6bd67ebaabe6636ae6867ad368ac6c3a /test/hmx-basic.test.js
parent8ebc077cb0d9f50aae22d2651bd5ef13fe4641d3 (diff)
downloadastro-17c3c98f07628b43b941b84831e8e1f9bcd7ca46.tar.gz
astro-17c3c98f07628b43b941b84831e8e1f9bcd7ca46.tar.zst
astro-17c3c98f07628b43b941b84831e8e1f9bcd7ca46.zip
Initial tests set up (#10)
* Begin debugging * Initial tests set up This adds tests using uvu (we can switch if people want) and restructures things a bit so that it's easier to test. Like in snowpack you set up a little project. In our tests you can say: ```js const result = await runtime.load('/blog/hello-world') ``` And analyze the result. I included a `test-helpers.js` which has a function that will turn HTML into a cheerio instance, for inspecting the result HTML. * Add CI * Remove extra console logs * Formatting
Diffstat (limited to 'test/hmx-basic.test.js')
-rw-r--r--test/hmx-basic.test.js38
1 files changed, 38 insertions, 0 deletions
diff --git a/test/hmx-basic.test.js b/test/hmx-basic.test.js
new file mode 100644
index 000000000..224ce07b3
--- /dev/null
+++ b/test/hmx-basic.test.js
@@ -0,0 +1,38 @@
+import { suite } from 'uvu';
+import * as assert from 'uvu/assert';
+import { createRuntime } from '../lib/runtime.js';
+import { doc } from './test-utils.js';
+
+const Basics = suite('HMX Basics');
+
+let runtime;
+
+Basics.before(async () => {
+ const astroConfig = {
+ projectRoot: new URL('./fixtures/hmx-basic/', import.meta.url),
+ hmxRoot: new URL('./fixtures/hmx-basic/astro/', import.meta.url),
+ dist: './_site'
+ };
+
+ const logging = {
+ level: 'error',
+ dest: process.stderr
+ };
+
+ runtime = await createRuntime(astroConfig, logging);
+});
+
+Basics.after(async () => {
+ await runtime.shutdown();
+});
+
+Basics('Can load hmx page', async () => {
+ const result = await runtime.load('/');
+
+ assert.equal(result.statusCode, 200);
+ const $ = doc(result.contents);
+
+ assert.equal($('h1').text(), 'Hello world!');
+});
+
+Basics.run(); \ No newline at end of file