@@ -55,6 +55,30 @@ describe 'Accessors (Getters and Setters)', ->
5555 slicer .setAngleUnit (' invalid' )
5656 expect (slicer .getAngleUnit ()).toBe (' degree' ) # unchanged.
5757
58+ test ' should set and get speed unit' , ->
59+
60+ expect (slicer .getSpeedUnit ()).toBe (' millimeterSecond' )
61+
62+ slicer .setSpeedUnit (' inchSecond' )
63+ expect (slicer .getSpeedUnit ()).toBe (' inchSecond' )
64+
65+ slicer .setSpeedUnit (' meterSecond' )
66+ expect (slicer .getSpeedUnit ()).toBe (' meterSecond' )
67+
68+ slicer .setSpeedUnit (' millimeterSecond' )
69+ expect (slicer .getSpeedUnit ()).toBe (' millimeterSecond' )
70+
71+ # Should ignore invalid values.
72+ slicer .setSpeedUnit (' invalid' )
73+ expect (slicer .getSpeedUnit ()).toBe (' millimeterSecond' ) # unchanged.
74+
75+ # Should accept any capitalization and store canonical camelCase form.
76+ slicer .setSpeedUnit (' MILLIMETERSECOND' )
77+ expect (slicer .getSpeedUnit ()).toBe (' millimeterSecond' )
78+
79+ slicer .setSpeedUnit (' InchSecond' )
80+ expect (slicer .getSpeedUnit ()).toBe (' inchSecond' )
81+
5882 describe ' Temperature Accessors' , ->
5983
6084 test ' should set and get temperatures' , ->
@@ -774,6 +798,13 @@ describe 'Accessors (Getters and Setters)', ->
774798 slicer .setPositioningMode (' invalid' )
775799 expect (slicer .getPositioningMode ()).toBe (' absolute' ) # unchanged.
776800
801+ # Should accept any capitalization.
802+ slicer .setPositioningMode (' Relative' )
803+ expect (slicer .getPositioningMode ()).toBe (' relative' )
804+
805+ slicer .setPositioningMode (' ABSOLUTE' )
806+ expect (slicer .getPositioningMode ()).toBe (' absolute' )
807+
777808 test ' should set and get extruder mode' , ->
778809
779810 expect (slicer .getExtruderMode ()).toBe (' absolute' ) # default.
@@ -787,6 +818,63 @@ describe 'Accessors (Getters and Setters)', ->
787818 slicer .setExtruderMode (' invalid' )
788819 expect (slicer .getExtruderMode ()).toBe (' absolute' ) # unchanged.
789820
821+ # Should accept any capitalization.
822+ slicer .setExtruderMode (' Relative' )
823+ expect (slicer .getExtruderMode ()).toBe (' relative' )
824+
825+ slicer .setExtruderMode (' ABSOLUTE' )
826+ expect (slicer .getExtruderMode ()).toBe (' absolute' )
827+
828+ test ' should accept case-insensitive input for all string setters' , ->
829+
830+ # Each string setter must accept any capitalization and store the canonical form.
831+ # This prevents silent failures caused by toLowerCase() vs camelCase mismatch.
832+
833+ slicer .setWorkspacePlane (' xy' )
834+ expect (slicer .getWorkspacePlane ()).toBe (' XY' )
835+
836+ slicer .setTimeUnit (' SECONDS' )
837+ expect (slicer .getTimeUnit ()).toBe (' seconds' )
838+
839+ slicer .setLengthUnit (' INCHES' )
840+ expect (slicer .getLengthUnit ()).toBe (' inches' )
841+
842+ slicer .setSpeedUnit (' MILLIMETERSECOND' )
843+ expect (slicer .getSpeedUnit ()).toBe (' millimeterSecond' )
844+
845+ slicer .setTemperatureUnit (' FAHRENHEIT' )
846+ expect (slicer .getTemperatureUnit ()).toBe (' fahrenheit' )
847+
848+ slicer .setAngleUnit (' RADIAN' )
849+ expect (slicer .getAngleUnit ()).toBe (' radian' )
850+
851+ slicer .setInfillPattern (' GRID' )
852+ expect (slicer .getInfillPattern ()).toBe (' grid' )
853+
854+ slicer .setInfillPatternCentering (' GLOBAL' )
855+ expect (slicer .getInfillPatternCentering ()).toBe (' global' )
856+
857+ slicer .setSupportType (' NORMAL' )
858+ expect (slicer .getSupportType ()).toBe (' normal' )
859+
860+ slicer .setSupportPlacement (' EVERYWHERE' )
861+ expect (slicer .getSupportPlacement ()).toBe (' everywhere' )
862+
863+ slicer .setSupportPlacement (' BUILDPLATE' )
864+ expect (slicer .getSupportPlacement ()).toBe (' buildPlate' )
865+
866+ slicer .setAdhesionType (' BRIM' )
867+ expect (slicer .getAdhesionType ()).toBe (' brim' )
868+
869+ slicer .setSkirtType (' CIRCULAR' )
870+ expect (slicer .getSkirtType ()).toBe (' circular' )
871+
872+ slicer .setPositioningMode (' RELATIVE' )
873+ expect (slicer .getPositioningMode ()).toBe (' relative' )
874+
875+ slicer .setExtruderMode (' RELATIVE' )
876+ expect (slicer .getExtruderMode ()).toBe (' relative' )
877+
790878 describe ' Configuration Object Accessors' , ->
791879
792880 Printer = require (' ../config/printer/printer' )
0 commit comments