diff options
author | 2024-10-03 20:52:11 +0200 | |
---|---|---|
committer | 2024-10-03 20:52:11 +0200 | |
commit | f9dd9428c6cd1c9d23488ea4645f186b4a4ad4b2 (patch) | |
tree | e727e0ad919b5e6ea81c2c9e897c35661bce0a41 /packages/integrations/vue/test | |
parent | 34d79527a4cd88864c4a9128a393c0d2f7d9eda7 (diff) | |
download | astro-f9dd9428c6cd1c9d23488ea4645f186b4a4ad4b2.tar.gz astro-f9dd9428c6cd1c9d23488ea4645f186b4a4ad4b2.tar.zst astro-f9dd9428c6cd1c9d23488ea4645f186b4a4ad4b2.zip |
fix(vue): useId() collisions (#12112)
Diffstat (limited to 'packages/integrations/vue/test')
3 files changed, 21 insertions, 0 deletions
diff --git a/packages/integrations/vue/test/basics.test.js b/packages/integrations/vue/test/basics.test.js index 4eb2b987c..d54ea66b6 100644 --- a/packages/integrations/vue/test/basics.test.js +++ b/packages/integrations/vue/test/basics.test.js @@ -30,4 +30,13 @@ describe('Basics', () => { 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')); + }); }); diff --git a/packages/integrations/vue/test/fixtures/basics/src/components/WithId.vue b/packages/integrations/vue/test/fixtures/basics/src/components/WithId.vue new file mode 100644 index 000000000..2c8667696 --- /dev/null +++ b/packages/integrations/vue/test/fixtures/basics/src/components/WithId.vue @@ -0,0 +1,9 @@ +<script setup> +import { useId } from "vue" + +const id = useId() +</script> + +<template> + <p class="vue-use-id" :id="id">{{ id }}</p> +</template>
\ No newline at end of file diff --git a/packages/integrations/vue/test/fixtures/basics/src/pages/index.astro b/packages/integrations/vue/test/fixtures/basics/src/pages/index.astro index b2f292d10..162b326c8 100644 --- a/packages/integrations/vue/test/fixtures/basics/src/pages/index.astro +++ b/packages/integrations/vue/test/fixtures/basics/src/pages/index.astro @@ -1,6 +1,7 @@ --- import Bar from '../components/Foo.vue'; import Parent from '../components/Parent.astro'; +import WithId from '../components/WithId.vue'; --- <html> <head> @@ -10,5 +11,7 @@ import Parent from '../components/Parent.astro'; <Parent> <Bar slot="footer" /> </Parent> + <WithId client:idle /> + <WithId client:idle /> </body> </html> |