UNPKG

k15t-aui-ng2

Version:

aui-ng2 is a set of angular 2 components, directives and services to simplify the integration with Atlassian products based on AUI/ADG. The library is still under development and is considered in an experimental state. So be aware that things will change

79 lines (58 loc) 2.87 kB
import {async, inject, TestComponentBuilder, ComponentFixture} from '@angular/core/testing'; import {AuiNgRadioButtonGroupComponent} from './radio-button-group.component'; describe('RadioButtonGroup Component', () => { let items: any[] = [ {id: 1, name: 'foo', color: 'blue'}, {id: 2, name: 'bar'}, {id: 3, name: 'baz'} ]; let radioButtonGroup: ComponentFixture<AuiNgRadioButtonGroupComponent>; let changes = []; beforeEach(async(inject([TestComponentBuilder], (tcb: TestComponentBuilder) => { return tcb.createAsync( AuiNgRadioButtonGroupComponent).then((componentFixture: ComponentFixture<AuiNgRadioButtonGroupComponent>) => { radioButtonGroup = componentFixture; radioButtonGroup.componentInstance.items = items; radioButtonGroup.componentInstance.selection = items[0]; radioButtonGroup.componentInstance.name = 'foobar'; radioButtonGroup.componentInstance.title = 'My Options'; radioButtonGroup.componentInstance.idProperty = 'id'; radioButtonGroup.componentInstance.labelProperty = 'name'; radioButtonGroup.detectChanges(); }); }))); it('should have a title', () => { let title = radioButtonGroup.nativeElement.querySelector('legend'); expect(title.innerText).toEqual('My Options'); }); it('should have a radio button for each option', () => { let radioButtons = radioButtonGroup.nativeElement.querySelectorAll('input.radio'); expect(radioButtons.length).toEqual(items.length); }); it('should check selection option', () => { let checkedButtons = radioButtonGroup.nativeElement.querySelectorAll('input.radio:checked'); expect(checkedButtons.length).toEqual(1); expect(checkedButtons[0].parentElement.innerText).toEqual(' foo'); }); it('should change selection if radio button is clicked', (done) => { radioButtonGroup.componentInstance.onChange = function (item) { expect(item).toEqual(items[1]); done(); }; radioButtonGroup.detectChanges(); let radioButtons = radioButtonGroup.nativeElement.querySelectorAll('input.radio'); radioButtons[1].click(); }); it('should change selection if lable is clicked', (done) => { radioButtonGroup.componentInstance.onChange = function (item) { expect(item).toEqual(items[2]); done(); }; radioButtonGroup.detectChanges(); let radioButtons = radioButtonGroup.nativeElement.querySelectorAll('.radio label'); // create custom event, because click only works on buttons let event = document.createEvent('Event'); event.initEvent('click', true, true); radioButtons[2].dispatchEvent(event); }); });