summaryrefslogtreecommitdiff
path: root/test/astro-prettier.test.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/astro-prettier.test.js')
-rw-r--r--test/astro-prettier.test.js44
1 files changed, 44 insertions, 0 deletions
diff --git a/test/astro-prettier.test.js b/test/astro-prettier.test.js
new file mode 100644
index 000000000..1dd1887f4
--- /dev/null
+++ b/test/astro-prettier.test.js
@@ -0,0 +1,44 @@
+import { suite } from 'uvu';
+import * as assert from 'uvu/assert';
+import { format } from './test-utils.js';
+import { setup } from './helpers.js';
+
+const Prettier = suite('Prettier formatting');
+
+setup(Prettier, './fixtures/astro-prettier');
+
+/**
+ * Utility to get `[src, out]` files
+ * @param name {string}
+ * @param ctx {any}
+ */
+const getFiles = async (name, { readFile }) => {
+ const [src, out] = await Promise.all([readFile(`/in/${name}.astro`), readFile(`/out/${name}.astro`)]);
+ return [src, out];
+}
+
+Prettier('can format a basic Astro file', async (ctx) => {
+ const [src, out] = await getFiles('basic', ctx);
+ assert.not.equal(src, out);
+
+ const formatted = format(src);
+ assert.equal(formatted, out);
+});
+
+Prettier('can format an Astro file with frontmatter', async (ctx) => {
+ const [src, out] = await getFiles('frontmatter', ctx);
+ assert.not.equal(src, out);
+
+ const formatted = format(src);
+ assert.equal(formatted, out);
+});
+
+Prettier('can format an Astro file with embedded JSX expressions', async (ctx) => {
+ const [src, out] = await getFiles('embedded-expr', ctx);
+ assert.not.equal(src, out);
+
+ const formatted = format(src);
+ assert.equal(formatted, out);
+});
+
+Prettier.run();