@@ -250,6 +250,16 @@ describe('Bootstrap Field Inputs', () => {
250250 let input = inputs [ 0 ] ;
251251 expect ( input . type ) . to . equal ( 'text' ) ;
252252 } ) ;
253+
254+ it ( 'supports other input types' , ( ) => {
255+ data . fields [ 0 ] . type = 'input' ;
256+ data . fields [ 0 ] . templateOptions . type = 'password' ;
257+ createForm ( data ) ;
258+
259+ let inputs = vm . $el . querySelectorAll ( 'input' ) ;
260+ let input = inputs [ 0 ] ;
261+ expect ( input . type ) . to . equal ( 'password' ) ;
262+ } ) ;
253263
254264 } ) ;
255265
@@ -322,117 +332,119 @@ describe('Bootstrap Field Inputs', () => {
322332 expect ( inputs ) . to . be . length ( 1 ) ;
323333 } ) ;
324334 } ) ;
325- /*
326- describe("List", () => {
327- describe('checkbox functions', ()=>{
328- describeFunctions('list', 'input', 'checkbox', ['one']);
329- });
330- describe('classes & attributes', () => {
331- /*
332- it('classes', () => {
333- data.form.test.classes = {
334- 'class-a': true,
335- 'class-b': false
336- };
337- createForm();
338- let input = vm.$el.querySelectorAll(inputElement)[0];
339- expect(input.className).to.equal('form-control class-a');
340- });
341-
342- it('id', () => {
343- data.form.test.id = 'someId';
344- createForm();
345- let input = vm.$el.querySelectorAll(inputElement)[0];
346- let label = vm.$el.querySelectorAll('label')[0];
347- expect(input.id).to.equal(data.form.test.id);
348- expect(label.htmlFor).to.equal(data.form.test.id);
349- });
350- */
351- /*
352- });
353-
354- it('array options', () => {
355- data.form.test.type = 'list';
356- data.form.test.inputType = 'checkbox';
357- data.form.test.options = ['one', 'two', 'three'];
358- createForm();
359-
360- let inputs = vm.$el.querySelectorAll('input');
361- let labels = vm.$el.querySelectorAll('label');
362- expect(inputs).to.be.length(3);
363- expect(inputs[0].value).to.equal('one');
364- expect(labels[0].textContent).to.contain('one');
365- expect(inputs[1].value).to.equal('two');
366- expect(labels[1].textContent).to.contain('two');
367- });
368-
369- it('object options', () => {
370- data.form.test.type = 'list';
371- data.form.test.inputType = 'checkbox'
372- data.form.test.options = [
373- { label: 'Foo', value: 'bar' },
374- { label: 'Bar', value: 'foo' }
375- ];
376- createForm();
377-
378- let inputs = vm.$el.querySelectorAll('input');
379- let labels = vm.$el.querySelectorAll('label');
380- expect(inputs).to.be.length(2);
381- expect(inputs[0].value).to.equal('bar');
382- expect(labels[0].textContent).to.contain('Foo');
383- expect(inputs[1].value).to.equal('foo');
384- expect(labels[1].textContent).to.contain('Bar');
385- });
386-
387- it('sets defaults', () => {
388- data.form.test.type = 'list';
389- data.form.test.options = ['one', 'two'];
390- createForm();
391-
392- expect(vm.$el.querySelectorAll('input')[0].type).to.equal('checkbox');
393- expect(vm.form.test.value).to.be.length(0);
394- expect(vm.form.test.value).to.deep.equal([]);
395- });
396-
397- it("shouldn't overwrite defaults", () => {
398- data.form.test.type = 'list';
399- data.form.test.options = ['one', 'two'];
400- data.form.test.value = ['one'];
401- createForm();
402-
403- expect(vm.form.test.value).to.be.length(1);
404- expect(vm.form.test.value[0]).to.equal('one');
405- });
406-
407- it('multiple values', (done) => {
408- data.form.test.type = 'list';
409- data.form.test.inputType = 'checkbox';
410- data.form.test.options = ['one', 'two'];
411- createForm();
412-
413- vm.form.test.value = ['one', 'two'];
414- setTimeout(()=>{
415- let inputs = vm.$el.querySelectorAll('input');
416- expect(inputs[0].checked).to.be.true;
417- expect(inputs[1].checked).to.be.true;
418- done();
419- }, 0);
420- });
421-
422- it('single value', (done) => {
423- data.form.test.type = 'list';
424- data.form.test.inputType = 'radio';
425- data.form.test.options = ['one', 'two'];
426- createForm();
427-
428- vm.form.test.value = 'two';
429- setTimeout(()=>{
430- let inputs = vm.$el.querySelectorAll('input');
431- expect(inputs[0].checked).to.be.false;
432- expect(inputs[1].checked).to.be.true;
433- done();
434- }, 0);
435- });
436- });
437- */
335+
336+ describe ( "List" , ( ) => {
337+ describe ( 'checkbox functions' , ( ) => {
338+ describeFunctions ( 'list' , 'input' , 'checkbox' , [ 'one' ] ) ;
339+ } ) ;
340+ describe ( 'classes & attributes' , ( ) => {
341+ /*
342+ it('classes', () => {
343+ data.fields[0].classes = {
344+ 'class-a': true,
345+ 'class-b': false
346+ };
347+ createForm();
348+ let input = vm.$el.querySelectorAll(inputElement)[0];
349+ expect(input.className).to.equal('form-control class-a');
350+ });
351+
352+ it('id', () => {
353+ data.fields[0].id = 'someId';
354+ createForm();
355+ let input = vm.$el.querySelectorAll(inputElement)[0];
356+ let label = vm.$el.querySelectorAll('label')[0];
357+ expect(input.id).to.equal(data.fields[0].id);
358+ expect(label.htmlFor).to.equal(data.fields[0].id);
359+ });
360+ */
361+
362+ } ) ;
363+
364+ it ( 'array options' , ( ) => {
365+ data . fields [ 0 ] . type = 'list' ;
366+ data . fields [ 0 ] . templateOptions . type = 'checkbox' ;
367+ data . fields [ 0 ] . options = [ 'one' , 'two' , 'three' ] ;
368+ createForm ( ) ;
369+
370+ let inputs = vm . $el . querySelectorAll ( 'input' ) ;
371+ let labels = vm . $el . querySelectorAll ( 'label' ) ;
372+ expect ( inputs ) . to . be . length ( 3 ) ;
373+ expect ( inputs [ 0 ] . value ) . to . equal ( 'one' ) ;
374+ expect ( labels [ 0 ] . textContent ) . to . contain ( 'one' ) ;
375+ expect ( inputs [ 1 ] . value ) . to . equal ( 'two' ) ;
376+ expect ( labels [ 1 ] . textContent ) . to . contain ( 'two' ) ;
377+ } ) ;
378+
379+ it ( 'object options' , ( ) => {
380+ data . fields [ 0 ] . type = 'list' ;
381+ data . fields [ 0 ] . templateOptions . type = 'checkbox'
382+ data . fields [ 0 ] . options = [
383+ { label : 'Foo' , value : 'bar' } ,
384+ { label : 'Bar' , value : 'foo' }
385+ ] ;
386+ createForm ( ) ;
387+
388+ let inputs = vm . $el . querySelectorAll ( 'input' ) ;
389+ let labels = vm . $el . querySelectorAll ( 'label' ) ;
390+ expect ( inputs ) . to . be . length ( 2 ) ;
391+ expect ( inputs [ 0 ] . value ) . to . equal ( 'bar' ) ;
392+ expect ( labels [ 0 ] . textContent ) . to . contain ( 'Foo' ) ;
393+ expect ( inputs [ 1 ] . value ) . to . equal ( 'foo' ) ;
394+ expect ( labels [ 1 ] . textContent ) . to . contain ( 'Bar' ) ;
395+ } ) ;
396+
397+ it ( 'sets defaults' , ( ) => {
398+ data . fields [ 0 ] . type = 'list' ;
399+ data . fields [ 0 ] . options = [ 'one' , 'two' ] ;
400+ createForm ( ) ;
401+
402+ expect ( vm . $el . querySelectorAll ( 'input' ) [ 0 ] . type ) . to . equal ( 'checkbox' ) ;
403+ expect ( vm . model . test ) . to . be . length ( 0 ) ;
404+ expect ( vm . model . test ) . to . deep . equal ( [ ] ) ;
405+ } ) ;
406+
407+ it ( "shouldn't overwrite defaults" , ( ) => {
408+ data . fields [ 0 ] . type = 'list' ;
409+ data . fields [ 0 ] . options = [ 'one' , 'two' ] ;
410+ data . model . test = [ 'one' ] ;
411+ createForm ( ) ;
412+
413+ expect ( vm . model . test ) . to . be . length ( 1 ) ;
414+ expect ( vm . model . test [ 0 ] ) . to . equal ( 'one' ) ;
415+ let inputs = vm . $el . querySelectorAll ( 'input' ) ;
416+ expect ( inputs [ 0 ] . checked ) . to . be . true ;
417+ } ) ;
418+
419+ it ( 'multiple values' , ( done ) => {
420+ data . fields [ 0 ] . type = 'list' ;
421+ data . fields [ 0 ] . templateOptions . type = 'checkbox' ;
422+ data . fields [ 0 ] . options = [ 'one' , 'two' ] ;
423+ createForm ( ) ;
424+
425+ vm . model . test = [ 'one' , 'two' ] ;
426+ setTimeout ( ( ) => {
427+ let inputs = vm . $el . querySelectorAll ( 'input' ) ;
428+ expect ( inputs [ 0 ] . checked ) . to . be . true ;
429+ expect ( inputs [ 1 ] . checked ) . to . be . true ;
430+ done ( ) ;
431+ } , 0 ) ;
432+ } ) ;
433+
434+ it ( 'single value' , ( done ) => {
435+ data . fields [ 0 ] . type = 'list' ;
436+ data . fields [ 0 ] . templateOptions . type = 'radio' ;
437+ data . fields [ 0 ] . options = [ 'one' , 'two' ] ;
438+ createForm ( ) ;
439+
440+ vm . model . test = 'two' ;
441+ setTimeout ( ( ) => {
442+ let inputs = vm . $el . querySelectorAll ( 'input' ) ;
443+ expect ( inputs [ 0 ] . checked ) . to . be . false ;
444+ expect ( inputs [ 1 ] . checked ) . to . be . true ;
445+ done ( ) ;
446+ } , 0 ) ;
447+ } ) ;
448+ } ) ;
449+
438450} ) ;
0 commit comments