@@ -224,6 +224,89 @@ func TestRevisionsForFileInWorkspace(t *testing.T) {
224224 }
225225}
226226
227+ func TestDisableCreateRevisionsForFileInWorkspace (t * testing.T ) {
228+ id , err := g .CreateWorkspace (context .Background (), "directory" )
229+ if err != nil {
230+ t .Fatalf ("Error creating workspace: %v" , err )
231+ }
232+
233+ t .Cleanup (func () {
234+ err := g .DeleteWorkspace (context .Background (), id )
235+ if err != nil {
236+ t .Errorf ("Error deleting workspace: %v" , err )
237+ }
238+ })
239+
240+ err = g .WriteFileInWorkspace (context .Background (), "test.txt" , []byte ("test0" ), WriteFileInWorkspaceOptions {WorkspaceID : id })
241+ if err != nil {
242+ t .Fatalf ("Error creating file: %v" , err )
243+ }
244+
245+ err = g .WriteFileInWorkspace (context .Background (), "test.txt" , []byte ("test1" ), WriteFileInWorkspaceOptions {WorkspaceID : id , CreateRevision : new (bool )})
246+ if err != nil {
247+ t .Fatalf ("Error creating file: %v" , err )
248+ }
249+
250+ err = g .WriteFileInWorkspace (context .Background (), "test.txt" , []byte ("test2" ), WriteFileInWorkspaceOptions {WorkspaceID : id })
251+ if err != nil {
252+ t .Fatalf ("Error creating file: %v" , err )
253+ }
254+
255+ revisions , err := g .ListRevisionsForFileInWorkspace (context .Background (), "test.txt" , ListRevisionsForFileInWorkspaceOptions {WorkspaceID : id })
256+ if err != nil {
257+ t .Errorf ("Error reading file: %v" , err )
258+ }
259+
260+ if len (revisions ) != 1 {
261+ t .Errorf ("Unexpected number of revisions: %d" , len (revisions ))
262+ }
263+
264+ for i , rev := range revisions {
265+ if rev .WorkspaceID != id {
266+ t .Errorf ("Unexpected file workspace ID: %v" , rev .WorkspaceID )
267+ }
268+
269+ if rev .Name != "test.txt" {
270+ t .Errorf ("Unexpected file name: %s" , rev .Name )
271+ }
272+
273+ if rev .Size != 5 {
274+ t .Errorf ("Unexpected file size: %d" , rev .Size )
275+ }
276+
277+ if rev .ModTime .IsZero () {
278+ t .Errorf ("Unexpected file mod time: %v" , rev .ModTime )
279+ }
280+
281+ if rev .MimeType != "text/plain" {
282+ t .Errorf ("Unexpected file mime type: %s" , rev .MimeType )
283+ }
284+
285+ if rev .RevisionID != fmt .Sprintf ("%d" , i + 1 ) {
286+ t .Errorf ("Unexpected revision ID: %s" , rev .RevisionID )
287+ }
288+ }
289+
290+ err = g .DeleteRevisionForFileInWorkspace (context .Background (), "test.txt" , "1" , DeleteRevisionForFileInWorkspaceOptions {WorkspaceID : id })
291+ if err != nil {
292+ t .Errorf ("Error deleting revision for file: %v" , err )
293+ }
294+
295+ revisions , err = g .ListRevisionsForFileInWorkspace (context .Background (), "test.txt" , ListRevisionsForFileInWorkspaceOptions {WorkspaceID : id })
296+ if err != nil {
297+ t .Errorf ("Error reading file: %v" , err )
298+ }
299+
300+ if len (revisions ) != 0 {
301+ t .Errorf ("Unexpected number of revisions: %d" , len (revisions ))
302+ }
303+
304+ err = g .DeleteFileInWorkspace (context .Background (), "test.txt" , DeleteFileInWorkspaceOptions {WorkspaceID : id })
305+ if err != nil {
306+ t .Errorf ("Error deleting file: %v" , err )
307+ }
308+ }
309+
227310func TestLsComplexWorkspace (t * testing.T ) {
228311 id , err := g .CreateWorkspace (context .Background (), "directory" )
229312 if err != nil {
@@ -607,6 +690,93 @@ func TestRevisionsForFileInWorkspaceS3(t *testing.T) {
607690 }
608691}
609692
693+ func TestDisableCreatingRevisionsForFileInWorkspaceS3 (t * testing.T ) {
694+ if os .Getenv ("AWS_ACCESS_KEY_ID" ) == "" || os .Getenv ("AWS_SECRET_ACCESS_KEY" ) == "" || os .Getenv ("WORKSPACE_PROVIDER_S3_BUCKET" ) == "" {
695+ t .Skip ("Skipping test because AWS credentials are not set" )
696+ }
697+
698+ id , err := g .CreateWorkspace (context .Background (), "s3" )
699+ if err != nil {
700+ t .Fatalf ("Error creating workspace: %v" , err )
701+ }
702+
703+ t .Cleanup (func () {
704+ err := g .DeleteWorkspace (context .Background (), id )
705+ if err != nil {
706+ t .Errorf ("Error deleting workspace: %v" , err )
707+ }
708+ })
709+
710+ err = g .WriteFileInWorkspace (context .Background (), "test.txt" , []byte ("test0" ), WriteFileInWorkspaceOptions {WorkspaceID : id })
711+ if err != nil {
712+ t .Fatalf ("Error creating file: %v" , err )
713+ }
714+
715+ err = g .WriteFileInWorkspace (context .Background (), "test.txt" , []byte ("test1" ), WriteFileInWorkspaceOptions {WorkspaceID : id , CreateRevision : new (bool )})
716+ if err != nil {
717+ t .Fatalf ("Error creating file: %v" , err )
718+ }
719+
720+ err = g .WriteFileInWorkspace (context .Background (), "test.txt" , []byte ("test2" ), WriteFileInWorkspaceOptions {WorkspaceID : id })
721+ if err != nil {
722+ t .Fatalf ("Error creating file: %v" , err )
723+ }
724+
725+ revisions , err := g .ListRevisionsForFileInWorkspace (context .Background (), "test.txt" , ListRevisionsForFileInWorkspaceOptions {WorkspaceID : id })
726+ if err != nil {
727+ t .Errorf ("Error reading file: %v" , err )
728+ }
729+
730+ if len (revisions ) != 1 {
731+ t .Errorf ("Unexpected number of revisions: %d" , len (revisions ))
732+ }
733+
734+ for i , rev := range revisions {
735+ if rev .WorkspaceID != id {
736+ t .Errorf ("Unexpected file workspace ID: %v" , rev .WorkspaceID )
737+ }
738+
739+ if rev .Name != "test.txt" {
740+ t .Errorf ("Unexpected file name: %s" , rev .Name )
741+ }
742+
743+ if rev .Size != 5 {
744+ t .Errorf ("Unexpected file size: %d" , rev .Size )
745+ }
746+
747+ if rev .ModTime .IsZero () {
748+ t .Errorf ("Unexpected file mod time: %v" , rev .ModTime )
749+ }
750+
751+ if rev .MimeType != "text/plain" {
752+ t .Errorf ("Unexpected file mime type: %s" , rev .MimeType )
753+ }
754+
755+ if rev .RevisionID != fmt .Sprintf ("%d" , i + 1 ) {
756+ t .Errorf ("Unexpected revision ID: %s" , rev .RevisionID )
757+ }
758+ }
759+
760+ err = g .DeleteRevisionForFileInWorkspace (context .Background (), "test.txt" , "1" , DeleteRevisionForFileInWorkspaceOptions {WorkspaceID : id })
761+ if err != nil {
762+ t .Errorf ("Error deleting revision for file: %v" , err )
763+ }
764+
765+ revisions , err = g .ListRevisionsForFileInWorkspace (context .Background (), "test.txt" , ListRevisionsForFileInWorkspaceOptions {WorkspaceID : id })
766+ if err != nil {
767+ t .Errorf ("Error reading file: %v" , err )
768+ }
769+
770+ if len (revisions ) != 0 {
771+ t .Errorf ("Unexpected number of revisions: %d" , len (revisions ))
772+ }
773+
774+ err = g .DeleteFileInWorkspace (context .Background (), "test.txt" , DeleteFileInWorkspaceOptions {WorkspaceID : id })
775+ if err != nil {
776+ t .Errorf ("Error deleting file: %v" , err )
777+ }
778+ }
779+
610780func TestLsComplexWorkspaceS3 (t * testing.T ) {
611781 if os .Getenv ("AWS_ACCESS_KEY_ID" ) == "" || os .Getenv ("AWS_SECRET_ACCESS_KEY" ) == "" || os .Getenv ("WORKSPACE_PROVIDER_S3_BUCKET" ) == "" {
612782 t .Skip ("Skipping test because AWS credentials are not set" )
0 commit comments