summaryrefslogtreecommitdiff
path: root/test/astro-prettier.test.js
blob: f3d1626c5a679a65b6b25376410ad8c8805046b6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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();