Skip to content

Commit 9923907

Browse files
committed
Add tests for hidden form field types
1 parent 30c24e6 commit 9923907

File tree

3 files changed

+56
-0
lines changed

3 files changed

+56
-0
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<script>
2+
import { get_hidden, set_hidden } from './form.remote';
3+
const hidden = get_hidden();
4+
</script>
5+
6+
<!-- TODO use await here once async lands -->
7+
{#await hidden then h}
8+
<p>await hidden().string: {h.string}</p>
9+
<p>await hidden().number: {h.number}</p>
10+
<p>await hidden().boolean: {h.boolean}</p>
11+
{/await}
12+
13+
<form {...set_hidden}>
14+
<input {...set_hidden.fields.string.as('hidden', 'b')} />
15+
<input {...set_hidden.fields.number.as('hidden number', 1)} />
16+
<input {...set_hidden.fields.boolean.as('hidden boolean', true)} />
17+
<button>set hidden</button>
18+
</form>
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import { form, query } from '$app/server';
2+
import * as v from 'valibot';
3+
4+
let hidden = {
5+
string: 'a',
6+
number: 0,
7+
boolean: false
8+
};
9+
10+
export const get_hidden = query(() => {
11+
return hidden;
12+
});
13+
14+
export const set_hidden = form(
15+
v.object({
16+
string: v.string(),
17+
number: v.number(),
18+
boolean: v.boolean()
19+
}),
20+
async (data) => {
21+
hidden = data;
22+
get_hidden().refresh();
23+
}
24+
);

packages/kit/test/apps/basics/test/test.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1693,6 +1693,20 @@ test.describe('remote functions', () => {
16931693
await expect(page.locator('#result')).toHaveText('hello');
16941694
});
16951695

1696+
test('form hidden inputs of different types work', async ({ page, javaScriptEnabled }) => {
1697+
await page.goto('/remote/form/hidden');
1698+
1699+
await page.locator('button').click();
1700+
1701+
if (javaScriptEnabled) {
1702+
await expect(page.getByText('await hidden().string:')).toHaveText('await hidden().string: b');
1703+
await expect(page.getByText('await hidden().number:')).toHaveText('await hidden().number: 1');
1704+
await expect(page.getByText('await hidden().boolean:')).toHaveText(
1705+
'await hidden().boolean: true'
1706+
);
1707+
}
1708+
});
1709+
16961710
test('form updates inputs live', async ({ page, javaScriptEnabled }) => {
16971711
await page.goto('/remote/form');
16981712

0 commit comments

Comments
 (0)