Skip to content

Commit c84371a

Browse files
committed
add tests
1 parent dfb4c79 commit c84371a

File tree

1 file changed

+105
-1
lines changed

1 file changed

+105
-1
lines changed

client/wfprev-war/src/main/angular/src/app/components/edit-project/activities/activities.component.spec.ts

Lines changed: 105 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -685,7 +685,111 @@ describe('ActivitiesComponent', () => {
685685
{ duration: 5000, panelClass: 'snackbar-error' }
686686
);
687687
});
688-
688+
689+
it('should reset technique and method if baseGuid is empty', () => {
690+
const form = component.createActivityForm({
691+
silvicultureTechniqueGuid: 'tech1',
692+
silvicultureMethodGuid: 'method1'
693+
});
694+
695+
component.activityForms.push(form);
696+
form.get('silvicultureTechniqueGuid')?.enable();
697+
form.get('silvicultureMethodGuid')?.enable();
698+
699+
component.onBaseChange('', form);
700+
701+
expect(form.get('silvicultureTechniqueGuid')?.disabled).toBeTrue();
702+
expect(form.get('silvicultureMethodGuid')?.disabled).toBeTrue();
703+
expect(form.get('silvicultureTechniqueGuid')?.value).toBeNull();
704+
expect(form.get('silvicultureMethodGuid')?.value).toBeNull();
705+
});
706+
707+
it('should reset technique and method if current technique is invalid for base', () => {
708+
component.silvicultureTechniqueCode = [{ silvicultureBaseGuid: 'base1', silvicultureTechniqueGuid: 'techA' }];
709+
const form = component.createActivityForm({
710+
silvicultureTechniqueGuid: 'invalid-tech',
711+
silvicultureMethodGuid: 'method1'
712+
});
713+
714+
component.activityForms.push(form);
715+
component.onBaseChange('base1', form);
716+
717+
expect(form.get('silvicultureTechniqueGuid')?.value).toBeNull();
718+
expect(form.get('silvicultureMethodGuid')?.value).toBeNull();
719+
expect(form.get('silvicultureTechniqueGuid')?.disabled).toBeFalse();
720+
expect(form.get('silvicultureMethodGuid')?.disabled).toBeTrue();
721+
});
722+
723+
it('should reset method only if current method is invalid for valid technique', () => {
724+
component.silvicultureTechniqueCode = [{ silvicultureBaseGuid: 'base1', silvicultureTechniqueGuid: 'tech1' }];
725+
component.silvicultureMethodCode = [
726+
{ silvicultureTechniqueGuid: 'tech1', silvicultureMethodGuid: 'methodA' }
727+
];
728+
729+
const form = component.createActivityForm({
730+
silvicultureBaseGuid: 'base1',
731+
silvicultureTechniqueGuid: 'tech1',
732+
silvicultureMethodGuid: 'invalid-method'
733+
});
734+
735+
component.activityForms.push(form);
736+
component.onBaseChange('base1', form);
737+
738+
expect(form.get('silvicultureTechniqueGuid')?.enabled).toBeTrue();
739+
expect(form.get('silvicultureMethodGuid')?.disabled).toBeFalse();
740+
expect(form.get('silvicultureMethodGuid')?.value).toBeNull();
741+
});
742+
743+
it('should retain technique and method if both are valid', () => {
744+
component.silvicultureTechniqueCode = [{ silvicultureBaseGuid: 'base1', silvicultureTechniqueGuid: 'tech1' }];
745+
component.silvicultureMethodCode = [
746+
{ silvicultureTechniqueGuid: 'tech1', silvicultureMethodGuid: 'method1' }
747+
];
748+
749+
const form = component.createActivityForm({
750+
silvicultureBaseGuid: 'base1',
751+
silvicultureTechniqueGuid: 'tech1',
752+
silvicultureMethodGuid: 'method1'
753+
});
754+
755+
component.activityForms.push(form);
756+
component.onBaseChange('base1', form);
757+
758+
expect(form.get('silvicultureTechniqueGuid')?.enabled).toBeTrue();
759+
expect(form.get('silvicultureMethodGuid')?.enabled).toBeTrue();
760+
expect(form.get('silvicultureTechniqueGuid')?.value).toBe('tech1');
761+
expect(form.get('silvicultureMethodGuid')?.value).toBe('method1');
762+
});
763+
764+
// technique changes
765+
it('should reset method and disable it if techniqueGuid is empty', () => {
766+
const form = component.createActivityForm({ silvicultureMethodGuid: 'method1' });
767+
component.activityForms.push(form);
768+
form.get('silvicultureMethodGuid')?.enable();
769+
770+
component.onTechniqueChange('', form);
771+
772+
expect(form.get('silvicultureMethodGuid')?.value).toBeNull();
773+
expect(form.get('silvicultureMethodGuid')?.disabled).toBeTrue();
774+
expect(form.get('filteredMethodCode')?.value).toEqual([]);
775+
});
776+
777+
it('should reset method if current method does not belong to selected technique', () => {
778+
component.silvicultureMethodCode = [
779+
{ silvicultureTechniqueGuid: 'tech1', silvicultureMethodGuid: 'methodA' }
780+
];
781+
782+
const form = component.createActivityForm({ silvicultureMethodGuid: 'invalid-method' });
783+
component.activityForms.push(form);
784+
785+
component.onTechniqueChange('tech1', form);
786+
787+
expect(form.get('filteredMethodCode')?.value).toEqual([
788+
{ silvicultureTechniqueGuid: 'tech1', silvicultureMethodGuid: 'methodA' }
789+
]);
790+
expect(form.get('silvicultureMethodGuid')?.value).toBeNull();
791+
});
792+
689793
});
690794

691795

0 commit comments

Comments
 (0)