summaryrefslogtreecommitdiff
path: root/packages/integrations/vue/test/basics.test.js
blob: d54ea66b652e40d70c9c2fec2d741943175b9d5d (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
import * as assert from 'node:assert/strict';
import { before, describe, it } from 'node:test';
import { parseHTML } from 'linkedom';
import { loadFixture } from './test-utils.js';
describe('Basics', () => {
	/** @type {import('./test-utils').Fixture} */
	let fixture;

	before(async () => {
		fixture = await loadFixture({
			root: './fixtures/basics/',
		});
		await fixture.build();
	});

	it('Slots are added without the slot attribute', async () => {
		const data = await fixture.readFile('/index.html');
		const { document } = parseHTML(data);
		const bar = document.querySelector('#foo');

		assert.notEqual(bar, undefined);
		assert.equal(bar.getAttribute('slot'), null);
	});

	it('Can show images from public', async () => {
		const data = await fixture.readFile('/public/index.html');
		const { document } = parseHTML(data);
		const img = document.querySelector('img');

		assert.notEqual(img, undefined);
		assert.equal(img.getAttribute('src'), '/light_walrus.avif');
	});

	it('Should generate unique ids when using useId()', async () => {
		const data = await fixture.readFile('/index.html');
		const { document } = parseHTML(data);

		const els = document.querySelectorAll('.vue-use-id');
		assert.equal(els.length, 2);
		assert.notEqual(els[0].getAttribute('id'), els[1].getAttribute('id'));
	});
});