From 0a4fb6f62369e4086e8bb186fe4f54d286544e7d Mon Sep 17 00:00:00 2001 From: Kevin Chappell Date: Sun, 29 Dec 2024 22:08:13 -0800 Subject: [PATCH] chore: add missing test --- .../controls/form/textarea.test.mjs | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 src/lib/js/components/controls/form/textarea.test.mjs diff --git a/src/lib/js/components/controls/form/textarea.test.mjs b/src/lib/js/components/controls/form/textarea.test.mjs new file mode 100644 index 00000000..275fe527 --- /dev/null +++ b/src/lib/js/components/controls/form/textarea.test.mjs @@ -0,0 +1,50 @@ +import { describe, it, beforeEach, mock } from 'node:test' +import assert from 'node:assert' +import '../../../../../../tools/__mocks__/ResizeObserver.js' +import TextAreaControl from './textarea.js' +import Field from '../../fields/field.js' +import controls from '../index.js' + +describe('TextAreaControl', () => { + let controlInstance + + beforeEach(() => { + controlInstance = new TextAreaControl() + }) + + it('should create a TextAreaControl instance', () => { + assert.strictEqual(controlInstance instanceof TextAreaControl, true) + }) + + it('should have correct tag and actions', () => { + assert.strictEqual(controlInstance.controlData.tag, 'textarea') + assert.strictEqual(typeof controlInstance.controlData.action.input, 'function') + }) + + it('should have correct meta information', () => { + assert.strictEqual(controlInstance.controlData.meta.group, 'common') + assert.strictEqual(controlInstance.controlData.meta.icon, 'textarea') + assert.strictEqual(controlInstance.controlData.meta.id, 'textarea') + }) + + it('should have required attribute set to false', () => { + assert.strictEqual(controlInstance.controlData.attrs.required, false) + }) + + it('should set data on input', () => { + controls.add(controlInstance) + const controlData = controlInstance.controlData + const fieldData = { ...controlData, config: { controlId: controlData.meta.id } } + const fieldInstance = new Field(fieldData) + const mockSetData = mock.fn() + fieldInstance.setData = mockSetData + + fieldInstance.updatePreview() + const textarea = fieldInstance.preview.querySelector('textarea') + textarea.value = 'test value' + textarea.dispatchEvent(new window.Event('input', { bubbles: true })) + + assert.strictEqual(mockSetData.mock.calls.length, 1) + assert.deepStrictEqual(mockSetData.mock.calls[0].arguments, ['value', 'test value']) + }) +})