Skip to content

Commit

Permalink
show default value if present
Browse files Browse the repository at this point in the history
  • Loading branch information
findolor committed Feb 24, 2025
1 parent 9f0e7e5 commit a574aa4
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 4 deletions.
4 changes: 2 additions & 2 deletions packages/orderbook/test/js_api/gui.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -726,12 +726,12 @@ describe('Rain Orderbook JS API Package Bindgen Tests - Gui', async function ()
assert.equal(allFieldDefinitions.length, 2);

const fieldDefinitionsWithoutDefaults: GuiFieldDefinitionCfg[] =
gui.getAllFieldDefinitions(false);
gui.getAllFieldDefinitions(true);
assert.equal(fieldDefinitionsWithoutDefaults.length, 1);
assert.equal(fieldDefinitionsWithoutDefaults[0].binding, 'binding-1');

const fieldDefinitionsWithDefaults: GuiFieldDefinitionCfg[] =
gui.getAllFieldDefinitions(true);
gui.getAllFieldDefinitions(false);
assert.equal(fieldDefinitionsWithDefaults.length, 1);
assert.equal(fieldDefinitionsWithDefaults[0].binding, 'binding-2');
});
Expand Down
20 changes: 20 additions & 0 deletions packages/ui-components/src/__tests__/FieldDefinitionInput.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { render, fireEvent } from '@testing-library/svelte';
import { describe, it, expect, vi, beforeEach, type Mock } from 'vitest';
import FieldDefinitionInput from '../lib/components/deployment/FieldDefinitionInput.svelte';
import { DotrainOrderGui } from '@rainlanguage/orderbook/js_api';
import userEvent from '@testing-library/user-event';

vi.mock('@rainlanguage/orderbook/js_api', () => ({
DotrainOrderGui: vi.fn().mockImplementation(() => ({
Expand Down Expand Up @@ -109,4 +110,23 @@ describe('FieldDefinitionInput', () => {

expect(queryByText('Custom')).toBeNull();
});

it('renders default value if it exists', async () => {
const { getByPlaceholderText } = render(FieldDefinitionInput, {
props: {
fieldDefinition: { ...mockFieldDefinition, default: 'default value' },
gui: mockGui
}
});

const input = getByPlaceholderText('Enter custom value') as HTMLInputElement;
expect(input.value).toBe('default value');

await userEvent.type(input, '@');

expect(mockGui.saveFieldValue).toHaveBeenCalledWith('test-binding', {
isPreset: false,
value: 'default value@'
});
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,14 @@
export let gui: DotrainOrderGui;
let currentValue: GuiPresetCfg | undefined;
let inputValue: string | null = currentValue?.value || null;
let inputValue: string | null = fieldDefinition.default
? fieldDefinition.default
: currentValue?.value || null;
onMount(() => {
try {
currentValue = gui.getFieldValue(fieldDefinition.binding);
inputValue = currentValue?.value || null;
inputValue = fieldDefinition.default ? fieldDefinition.default : currentValue?.value || null;
} catch {
currentValue = undefined;
}
Expand Down

0 comments on commit a574aa4

Please sign in to comment.