@@ -782,6 +782,49 @@ onStart => {
782
782
require .EqualError (t , err , `sprite resource "Sprite2" already exists` )
783
783
require .Nil (t , changes )
784
784
})
785
+
786
+ // See https://github.com/goplus/builder/issues/1470.
787
+ t .Run ("WrongCodeWithInvalidType" , func (t * testing.T ) {
788
+ m := map [string ][]byte {
789
+ "main.spx" : []byte (`
790
+ var (
791
+ Sprite1 Sprite
792
+ )
793
+
794
+ onStart => {
795
+ invalidFunc()
796
+ }
797
+
798
+ func invalidFunc() {
799
+ invalidVar = [rand(-200,200), rand(-200,200)]
800
+ }
801
+ ` ),
802
+ "MySprite.spx" : []byte (`` ),
803
+ "assets/index.json" : []byte (`{}` ),
804
+ "assets/sprites/Sprite1/index.json" : []byte (`{}` ),
805
+ }
806
+ s := New (newMapFSWithoutModTime (m ), nil , fileMapGetter (m ))
807
+ result , err := s .compile ()
808
+ require .NoError (t , err )
809
+ require .True (t , result .hasErrorSeverityDiagnostic )
810
+
811
+ id , err := ParseSpxResourceURI (SpxResourceURI ("spx://resources/sprites/Sprite1" ))
812
+ require .NoError (t , err )
813
+
814
+ changes , err := s .spxRenameSpriteResource (result , id .(SpxSpriteResourceID ), "Sprite2" )
815
+ require .NoError (t , err )
816
+ require .Len (t , changes , 1 )
817
+
818
+ mainSpxChanges := changes [s .toDocumentURI ("main.spx" )]
819
+ require .Len (t , mainSpxChanges , 1 )
820
+ assert .Contains (t , mainSpxChanges , TextEdit {
821
+ Range : Range {
822
+ Start : Position {Line : 2 , Character : 1 },
823
+ End : Position {Line : 2 , Character : 8 },
824
+ },
825
+ NewText : "Sprite2" ,
826
+ })
827
+ })
785
828
}
786
829
787
830
func TestServerSpxRenameSpriteCostumeResource (t * testing.T ) {
0 commit comments