summaryrefslogtreecommitdiff
path: root/packages/astro/test/react-component.test.js
diff options
context:
space:
mode:
Diffstat (limited to 'packages/astro/test/react-component.test.js')
-rw-r--r--packages/astro/test/react-component.test.js54
1 files changed, 54 insertions, 0 deletions
diff --git a/packages/astro/test/react-component.test.js b/packages/astro/test/react-component.test.js
new file mode 100644
index 000000000..cdb4e2db2
--- /dev/null
+++ b/packages/astro/test/react-component.test.js
@@ -0,0 +1,54 @@
+import { fileURLToPath } from 'url';
+import { suite } from 'uvu';
+import * as assert from 'uvu/assert';
+import { createRuntime } from '../dist/runtime.js';
+import { loadConfig } from '../dist/config.js';
+import { doc } from './test-utils.js';
+
+const React = suite('React Components');
+
+let runtime, setupError;
+
+React.before(async () => {
+ const astroConfig = await loadConfig(fileURLToPath(new URL('./fixtures/react-component', import.meta.url)));
+
+ const logging = {
+ level: 'error',
+ dest: process.stderr,
+ };
+
+ try {
+ runtime = await createRuntime(astroConfig, { logging });
+ } catch (err) {
+ console.error(err);
+ setupError = err;
+ }
+});
+
+React.after(async () => {
+ (await runtime) && runtime.shutdown();
+});
+
+React('No error creating the runtime', () => {
+ assert.equal(setupError, undefined);
+});
+
+React('Can load React', async () => {
+ const result = await runtime.load('/');
+
+ assert.equal(result.statusCode, 200);
+
+ const $ = doc(result.contents);
+ assert.equal($('#react-h2').text(), 'Hello world!');
+});
+
+React('Can load Vue', async () => {
+ const result = await runtime.load('/');
+
+ assert.equal(result.statusCode, 200);
+
+ const $ = doc(result.contents);
+ assert.equal($('#vue-h2').text(), 'Hasta la vista, baby');
+});
+
+React.run();