import { beforeEach, describe, expect, it } from 'vitest'; import { mount, shallowMount } from '@vue/test-utils'; import { createPinia, setActivePinia } from 'pinia'; import _ from 'lodash'; import CInputText from './c-input-text.vue'; import { useValidation } from '@/composable/validation'; describe('CInputText', () => { beforeEach(() => { setActivePinia(createPinia()); }); it('Renders a label', () => { const wrapper = shallowMount(CInputText, { props: { label: 'Label', }, }); expect(wrapper.get('.label').text()).to.equal('Label'); }); it('Renders a placeholder', () => { const wrapper = shallowMount(CInputText, { props: { placeholder: 'Placeholder', }, }); expect(wrapper.get('.input').attributes('placeholder')).to.equal('Placeholder'); }); it('Renders a value', () => { const wrapper = shallowMount(CInputText, { props: { value: 'Value', }, }); expect(wrapper.vm.value).to.equal('Value'); }); it('Renders a provided id', () => { const wrapper = shallowMount(CInputText, { props: { id: 'id', }, }); expect(wrapper.get('.input').attributes('id')).to.equal('id'); }); it('updates value on input', async () => { const wrapper = shallowMount(CInputText); await wrapper.get('input').setValue('Hello'); expect(_.get(wrapper.emitted(), 'update:value.0.0')).to.equal('Hello'); }); it('cannot be edited when disabled', async () => { const wrapper = shallowMount(CInputText, { props: { disabled: true, }, }); await wrapper.get('input').setValue('Hello'); expect(_.get(wrapper.emitted(), 'update:value')).toBeUndefined(); }); it('renders a feedback message for invalid rules', async () => { const wrapper = shallowMount(CInputText, { props: { validationRules: [{ validator: () => false, message: 'Message' }] }, }); const feedback = wrapper.find('.feedback'); expect(feedback.exists()).to.equal(true); expect(feedback.text()).to.equal('Message'); }); it('if the value become valid according to rules, the feedback disappear', async () => { const wrapper = shallowMount(CInputText, { props: { validationRules: [{ validator: (value: string) => value === 'Hello', message: 'Value should be Hello' }], }, }); const feedback = wrapper.find('.feedback'); expect(feedback.exists()).to.equal(true); expect(feedback.text()).to.equal('Value should be Hello'); await wrapper.setProps({ value: 'Hello' }); expect(wrapper.find('.feedback').exists()).to.equal(false); }); it('feedback does not render for valid rules', async () => { const wrapper = shallowMount(CInputText, { props: { rules: [{ validator: () => true, message: 'Message' }] }, }); expect(wrapper.find('.feedback').exists()).to.equal(false); }); it('renders a feedback message for invalid custom validation wrapper', async () => { const wrapper = shallowMount(CInputText, { props: { validation: useValidation({ source: ref(), rules: [{ validator: () => false, message: 'Message' }] }), }, }); const feedback = wrapper.find('.feedback'); expect(feedback.exists()).to.equal(true); expect(feedback.text()).to.equal('Message'); }); it('feedback does not render for valid custom validation wrapper', async () => { const wrapper = shallowMount(CInputText, { props: { validation: useValidation({ source: ref(), rules: [{ validator: () => true, message: 'Message' }] }), }, }); expect(wrapper.find('.feedback').exists()).to.equal(false); }); it('if the value become valid according to the custom validation wrapper, the feedback disappear', async () => { const source = ref(''); const wrapper = shallowMount(CInputText, { props: { validation: useValidation({ source, rules: [{ validator: (value: string) => value === 'Hello', message: 'Value should be Hello' }], }), }, }); const feedback = wrapper.find('.feedback'); expect(feedback.exists()).to.equal(true); expect(feedback.text()).to.equal('Value should be Hello'); source.value = 'Hello'; await wrapper.vm.$nextTick(); expect(wrapper.find('.feedback').exists()).to.equal(false); }); it('[prop:testId] renders a test id on the input', async () => { const wrapper = mount(CInputText, { props: { testId: 'TEST', }, }); expect(wrapper.get('input').attributes('data-test-id')).to.equal('TEST'); }); }); e='dylan/set-exit-code'>dylan/set-exit-code Unnamed repository; edit this file 'description' to name the repository.
aboutsummaryrefslogtreecommitdiff
path: root/test/bun.js/bun-jsc.test.js (unfollow)
AgeCommit message (Collapse)AuthorFilesLines
2023-03-02Ensure prettier knows where to lookGravatar Jarred Sumner 6-5/+24
2023-03-02add tests for scoped dependency aliasing (#2271)Gravatar Alex Lam S.L 3-15/+111
2023-03-02fix tmp dir in fetch.tests.js (#2270)Gravatar Ciro Spaciari 1-1/+2
2023-03-02Remake typings for FFI dlopen/linkSymbols + introduce Pointer type (#2227)Gravatar u9g 4-28/+222
* Give dlopen & linkSymbols typings for exported functions * Fix lookup table * Fully change over to Pointer + fix examples * add back header for typings * Fix tsc errors * Run formatter on ffi.d.ts * Revert args/return type change * Add type tests for ffi --------- Co-authored-by: Colin McDonnell <colinmcd94@gmail.com>
2023-03-02put AbortSignal in WebCore namespace (#2267)Gravatar Ciro Spaciari 9-69/+70
2023-03-02only free sink after promises solves (#2268)Gravatar Ciro Spaciari 2-10/+10
2023-03-02Fix `Bun.sleepSync` to actually use milliseconds (#2242)Gravatar Justin Whear 3-5/+57
* Fix Bun.sleep/sleepSync to actually use milliseconds `Bun.sleepSync` was accidentally treating its argument as seconds rather than milliseconds as the docs stated. This is a breaking change in that the function now behaves as documented. Fixed relevant tests. * sleepSync: add more argument checking, tests
2023-03-01fix(bindings): mark `JSCInitialize` (#2265)Gravatar Derrick Farris 1-0/+1
2023-03-01Add page descriptions (#2260)Gravatar Colin McDonnell 1-46/+132
* Add page descriptions * Update bun install * Description tweaks * Tweaks
2023-03-01fix bun server segfault with abortsignal (#2261)Gravatar Ciro Spaciari 3-133/+79
* removed redundant tests, fixed server segfault * fix onRejectStream, safer unassign signal * fix abort Bun.serve signal.addEventListener on async * move ctx.signal null check up * keep original behavior of streams onAborted
2023-03-01fix(node:http): match Node `http.request()` GET/HEAD w/ body (#2262)Gravatar Derrick Farris 2-2/+31
2023-03-01Add a test for https request in node:httpGravatar Jarred Sumner 2-17/+28
2023-03-01fix(node:http/https): fix passing `URL` objs to `http.request`(#2253) (#2258)Gravatar Derrick Farris 2-43/+63
* fix(node:http/https): fix passing `URL` objs to `http.request`(#2253) * fix(node:http): hoist debug env var * fix(node:http): make body `undefined` when falsy
2023-03-01Revert "Update clap (#2238)"Gravatar Jarred Sumner 16-290/+1840
This reverts commit 7b9a17f9d7106ffd8e553a5192aba60d14ea5e9c.
2023-03-01Revert "Add `-D`, `--dev` flags for bun install (#2240)"Gravatar Jarred Sumner 1-9/+9
This reverts commit ec20fae57f96a835562b154730957ecc4015ba31.
2023-03-01Use GitHub action ID instead of SHA for test workflowGravatar Ashcon Partovi 1-1/+1
2023-03-01avoids segfault after aborted onReject in Bun.serve streams (#2256)Gravatar Ciro Spaciari 1-7/+8
* avoids segfault after aborted on reject * silence err on handleRejectStream after aborted
2023-03-01Run tests in CI for bun-linux-aarch64Gravatar Ashcon Partovi 2-1/+30
2023-03-01Revert spawnSync changeGravatar Jarred Sumner 1-1/+2
cc @FireTheFox
2023-03-01Update bindings.zigGravatar Jarred Sumner 1-1/+3
2023-03-01fix deinit behavior when connection is aborted using ResponseStream and ↵Gravatar Ciro Spaciari 3-34/+174
abort event behavior (#2252) * fix deinit behavior when connection is aborted using ResponseStream * fix abort handling on stream, and get better tests * avoid segfault by trying to deinit 2x when aborted * make tests more reliable * more reliable onResolveStream after aborted * add test case for not firing the abort signal
2023-03-01fix Bun.file.arrayBuffer() segmentation fault on empty file #2248 (#2249)Gravatar Ciro Spaciari 3-7/+23
* fix Bun.file.arrayBuffer() segmentation fault on empty file #2248 * cleanner this.iotask check
2023-03-01Fix async in sqliteGravatar Colin McDonnell 1-2/+2
2023-02-28Forces a specific libdir for c-ares (#2241)Gravatar Justin Whear 1-1/+5
The c-ares build expects lib/libcares.a to exist after cmake, but on my system it was being generated in lib64. This simply sets the cmake variable so that the target ends up where we expect.
2023-02-28Make Bun.gc(true) more aggressiveGravatar Jarred Sumner 1-0/+3
2023-02-28Expose JSC::Options via `BUN_JSC_` prefixGravatar Jarred Sumner 6-8/+47
Example usage: BUN_JSC_logGC=1 bun file.js
2023-02-28fixupGravatar Jarred Sumner 1-1/+1
2023-02-28Fix typecheckGravatar Colin McDonnell 2-1/+4
2023-02-28Fix incorrect Bun version in docs (#2236)Gravatar Derrick Farris 1-1/+1
2023-02-28just some comments fix (#2237)Gravatar Ciro Spaciari 1-4/+2
2023-02-28Add `-D`, `--dev` flags for bun install (#2240)Gravatar Justin Whear 1-9/+9
* remove vendored clap * Update to latest zig-clap Major changes: * Instead of vendoring zig-clap and adding changes, this uses Hejsil/zig-clap directly as a submodule * `cli.zig` and related files have been updated to use new API (no more `flag()` or `option()`) * A workaround for the Run and Auto commands has been implemented that allows us to use the official upstream Minor change: * `-i` now has the long option `--install-fallback`; I didn't spend much time thinking about this name, so suggestions weclome. * add --development and --optional to bun install * Add support for `-D`, `--dev` in bun install, fix `--save`
2023-02-28Document punningGravatar Colin McDonnell 1-1/+18