1
1
import * as gptscript from "../src/gptscript"
2
2
import {
3
3
ArgumentSchemaType ,
4
- CredentialType , Dataset ,
4
+ CredentialType ,
5
5
getEnv ,
6
6
PropertyType ,
7
7
RunEventType ,
@@ -13,7 +13,7 @@ import path from "path"
13
13
import { fileURLToPath } from "url"
14
14
import * as fs from "node:fs"
15
15
import { randomBytes } from "node:crypto"
16
- import { tmpdir } from "node:os" ;
16
+ import { tmpdir } from "node:os"
17
17
18
18
let gFirst : gptscript . GPTScript
19
19
let g : gptscript . GPTScript
@@ -908,21 +908,21 @@ describe("gptscript module", () => {
908
908
// Add elements
909
909
try {
910
910
const e1 = await g . addDatasetElement (
911
- workspace ,
912
- datasetID ,
913
- "element1" ,
914
- "" ,
915
- "this is element 1 contents"
911
+ workspace ,
912
+ datasetID ,
913
+ "element1" ,
914
+ "" ,
915
+ "this is element 1 contents"
916
916
)
917
917
expect ( e1 . name ) . toEqual ( "element1" )
918
918
expect ( e1 . description ) . toEqual ( "" )
919
919
920
920
const e2 = await g . addDatasetElement (
921
- workspace ,
922
- datasetID ,
923
- "element2" ,
924
- "a description" ,
925
- "this is element 2 contents"
921
+ workspace ,
922
+ datasetID ,
923
+ "element2" ,
924
+ "a description" ,
925
+ "this is element 2 contents"
926
926
)
927
927
expect ( e2 . name ) . toEqual ( "element2" )
928
928
expect ( e2 . description ) . toEqual ( "a description" )
@@ -963,5 +963,114 @@ describe("gptscript module", () => {
963
963
} catch ( e ) {
964
964
throw new Error ( "failed to list datasets: " + e )
965
965
}
966
- } , 20000 )
966
+ } , 60000 )
967
+
968
+ test ( "create and delete workspace" , async ( ) => {
969
+ if ( ! process . env . AWS_ACCESS_KEY_ID || ! process . env . AWS_SECRET_ACCESS_KEY ) {
970
+ console . log ( "AWS credentials not set, skipping test" )
971
+ return
972
+ }
973
+
974
+ const workspaceID = await g . createWorkspace ( "directory" )
975
+ expect ( workspaceID ) . toBeDefined ( )
976
+ await g . deleteWorkspace ( workspaceID )
977
+ } , 60000 )
978
+
979
+ test ( "write, read, and delete file" , async ( ) => {
980
+ if ( ! process . env . AWS_ACCESS_KEY_ID || ! process . env . AWS_SECRET_ACCESS_KEY ) {
981
+ console . log ( "AWS credentials not set, skipping test" )
982
+ return
983
+ }
984
+
985
+ const workspaceID = await g . createWorkspace ( "directory" )
986
+ expect ( workspaceID ) . toBeDefined ( )
987
+
988
+ await g . writeFileInWorkspace ( "test.txt" , Buffer . from ( "test" ) , workspaceID )
989
+ const content = await g . readFileInWorkspace ( "test.txt" , workspaceID )
990
+ expect ( content . toString ( ) ) . toEqual ( "test" )
991
+ await g . deleteWorkspace ( workspaceID )
992
+ } , 60000 )
993
+
994
+ test ( "test complex ls" , async ( ) => {
995
+ if ( ! process . env . AWS_ACCESS_KEY_ID || ! process . env . AWS_SECRET_ACCESS_KEY ) {
996
+ console . log ( "AWS credentials not set, skipping test" )
997
+ return
998
+ }
999
+
1000
+ const workspaceID = await g . createWorkspace ( "directory" )
1001
+
1002
+ // Write files in the workspace
1003
+ await g . writeFileInWorkspace ( "test/test1.txt" , Buffer . from ( "hello1" ) , workspaceID )
1004
+ await g . writeFileInWorkspace ( "test1/test2.txt" , Buffer . from ( "hello2" ) , workspaceID )
1005
+ await g . writeFileInWorkspace ( "test1/test3.txt" , Buffer . from ( "hello3" ) , workspaceID )
1006
+ await g . writeFileInWorkspace ( ".hidden.txt" , Buffer . from ( "hidden" ) , workspaceID )
1007
+
1008
+ let content = await g . listFilesInWorkspace ( undefined , workspaceID )
1009
+ expect ( content . length ) . toEqual ( 4 )
1010
+ expect ( content ) . toContain ( "test1/test2.txt" )
1011
+ expect ( content ) . toContain ( "test1/test3.txt" )
1012
+ expect ( content ) . toContain ( "test/test1.txt" )
1013
+ expect ( content ) . toContain ( ".hidden.txt" )
1014
+
1015
+ content = await g . listFilesInWorkspace ( "test1" , workspaceID )
1016
+ expect ( content . length ) . toEqual ( 2 )
1017
+ expect ( content ) . toContain ( "test1/test2.txt" )
1018
+ expect ( content ) . toContain ( "test1/test3.txt" )
1019
+
1020
+ await g . removeAll ( "test1" , workspaceID )
1021
+
1022
+ content = await g . listFilesInWorkspace ( "" , workspaceID )
1023
+ expect ( content . length ) . toEqual ( 2 )
1024
+ expect ( content ) . toContain ( "test/test1.txt" )
1025
+ expect ( content ) . toContain ( ".hidden.txt" )
1026
+
1027
+ await g . deleteWorkspace ( workspaceID )
1028
+ } , 60000 )
1029
+
1030
+ test ( "create and delete workspace in s3" , async ( ) => {
1031
+ const workspaceID = await g . createWorkspace ( "s3" )
1032
+ expect ( workspaceID ) . toBeDefined ( )
1033
+ await g . deleteWorkspace ( workspaceID )
1034
+ } , 60000 )
1035
+
1036
+ test ( "write, read, and delete file in s3" , async ( ) => {
1037
+ const workspaceID = await g . createWorkspace ( "s3" )
1038
+ expect ( workspaceID ) . toBeDefined ( )
1039
+
1040
+ await g . writeFileInWorkspace ( "test.txt" , Buffer . from ( "test" ) , workspaceID )
1041
+ const content = await g . readFileInWorkspace ( "test.txt" , workspaceID )
1042
+ expect ( content . toString ( ) ) . toEqual ( "test" )
1043
+ await g . deleteWorkspace ( workspaceID )
1044
+ } , 60000 )
1045
+
1046
+ test ( "test complex ls in s3" , async ( ) => {
1047
+ const workspaceID = await g . createWorkspace ( "s3" )
1048
+
1049
+ // Write files in the workspace
1050
+ await g . writeFileInWorkspace ( "test/test1.txt" , Buffer . from ( "hello1" ) , workspaceID )
1051
+ await g . writeFileInWorkspace ( "test1/test2.txt" , Buffer . from ( "hello2" ) , workspaceID )
1052
+ await g . writeFileInWorkspace ( "test1/test3.txt" , Buffer . from ( "hello3" ) , workspaceID )
1053
+ await g . writeFileInWorkspace ( ".hidden.txt" , Buffer . from ( "hidden" ) , workspaceID )
1054
+
1055
+ let content = await g . listFilesInWorkspace ( undefined , workspaceID )
1056
+ expect ( content . length ) . toEqual ( 4 )
1057
+ expect ( content ) . toContain ( "test1/test2.txt" )
1058
+ expect ( content ) . toContain ( "test1/test3.txt" )
1059
+ expect ( content ) . toContain ( "test/test1.txt" )
1060
+ expect ( content ) . toContain ( ".hidden.txt" )
1061
+
1062
+ content = await g . listFilesInWorkspace ( "test1" , workspaceID )
1063
+ expect ( content . length ) . toEqual ( 2 )
1064
+ expect ( content ) . toContain ( "test1/test2.txt" )
1065
+ expect ( content ) . toContain ( "test1/test3.txt" )
1066
+
1067
+ await g . removeAll ( "test1" , workspaceID )
1068
+
1069
+ content = await g . listFilesInWorkspace ( "" , workspaceID )
1070
+ expect ( content . length ) . toEqual ( 2 )
1071
+ expect ( content ) . toContain ( "test/test1.txt" )
1072
+ expect ( content ) . toContain ( ".hidden.txt" )
1073
+
1074
+ await g . deleteWorkspace ( workspaceID )
1075
+ } , 60000 )
967
1076
} )
0 commit comments