import React from 'react';
import ReactTestUtils from 'react-dom/test-utils';

import {
	Radiofelt,
	Radiovalg,
} from '../../../main/javascript/skjema/Radiofelt';

describe('Radiofelt', function () {
	var instans;
	describe('feltverdi er satt', function () {
		var mottaVerdi = jasmine.createSpy();
		var radiofelt;
		beforeEach(function () {
			instans = ReactTestUtils.renderIntoDocument(
				<Radiofelt
					klasse="radiotest"
					alternativer={[
						new Radiovalg('enverdi', 'entekst'),
						new Radiovalg('enannenverdi', 'enannentekst'),
						new Radiovalg('entredjeverdi', 'entredjetekst'),
					]}
					verdi={() => 'enverdi'}
					vedVerdi={mottaVerdi}
				/>
			);
			radiofelt = ReactTestUtils.scryRenderedDOMComponentsWithClass(
				instans,
				'radiotest'
			);
		});
		it('feltverdi er vist', function () {
			var valgt = radiofelt.filter(function (felt) {
				return felt.checked;
			});
			expect(valgt.length).toEqual(1);
			expect(valgt[0].value).toEqual('enverdi');
		});
		describe('feltverdi endres', function () {
			beforeEach(function () {
				var valgt = radiofelt.find(function (felt) {
					return felt.value === 'enannenverdi';
				});
				ReactTestUtils.Simulate.change(valgt, {
					target: { checked: true },
				});
			});
			it('feltverdi er oppdatert', function () {
				expect(mottaVerdi.calls.mostRecent().args[0]).toEqual(
					'enannenverdi'
				);
			});
		});
	});
});
