@@ -781,4 +781,59 @@ ${ansis.red.bold('Cancelled by SIGINT')}
781781 ) ;
782782 } ) ;
783783 } ) ;
784+
785+ describe ( 'invalid usage' , ( ) => {
786+ it ( 'should throw if nesting group in another group' , async ( ) => {
787+ const logger = new Logger ( ) ;
788+
789+ await expect (
790+ logger . group ( 'Outer group' , async ( ) => {
791+ await logger . group ( 'Inner group' , async ( ) => 'Inner group complete' ) ;
792+ return 'Outer group complete' ;
793+ } ) ,
794+ ) . rejects . toThrow (
795+ 'Internal Logger error - nested groups are not supported' ,
796+ ) ;
797+ } ) ;
798+
799+ it ( 'should throw if nesting groups across logger instances' , async ( ) => {
800+ await expect (
801+ new Logger ( ) . group ( 'Outer group' , async ( ) => {
802+ await new Logger ( ) . group (
803+ 'Inner group' ,
804+ async ( ) => 'Inner group complete' ,
805+ ) ;
806+ return 'Outer group complete' ;
807+ } ) ,
808+ ) . rejects . toThrow (
809+ 'Internal Logger error - nested groups are not supported' ,
810+ ) ;
811+ } ) ;
812+
813+ it ( 'should throw if creating group while spinner is running' , async ( ) => {
814+ const logger = new Logger ( ) ;
815+
816+ await expect (
817+ logger . task ( 'Some async process' , async ( ) => {
818+ await logger . group ( 'Some group' , async ( ) => 'Group completed' ) ;
819+ return 'Async process completed' ;
820+ } ) ,
821+ ) . rejects . toThrow (
822+ 'Internal Logger error - creating group in active spinner is not supported' ,
823+ ) ;
824+ } ) ;
825+
826+ it ( 'should throw if starting new spinner while another is still active' , async ( ) => {
827+ const logger = new Logger ( ) ;
828+
829+ await expect (
830+ Promise . all ( [
831+ logger . task ( 'Task 1' , async ( ) => 'DONE' ) ,
832+ logger . task ( 'Task 2' , async ( ) => 'DONE' ) ,
833+ ] ) ,
834+ ) . rejects . toThrow (
835+ 'Internal Logger error - concurrent spinners are not supported' ,
836+ ) ;
837+ } ) ;
838+ } ) ;
784839} ) ;
0 commit comments