@@ -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