@@ -33,6 +33,13 @@ func TestCreateAndDeleteWorkspaceFromWorkspace(t *testing.T) {
33
33
t .Fatalf ("Error creating workspace: %v" , err )
34
34
}
35
35
36
+ t .Cleanup (func () {
37
+ err = g .DeleteWorkspace (context .Background (), id )
38
+ if err != nil {
39
+ t .Errorf ("Error deleting workspace: %v" , err )
40
+ }
41
+ })
42
+
36
43
err = g .WriteFileInWorkspace (context .Background (), "file.txt" , []byte ("hello world" ), WriteFileInWorkspaceOptions {
37
44
WorkspaceID : id ,
38
45
})
@@ -45,26 +52,21 @@ func TestCreateAndDeleteWorkspaceFromWorkspace(t *testing.T) {
45
52
t .Errorf ("Error creating workspace from workspace: %v" , err )
46
53
}
47
54
48
- data , err := g .ReadFileInWorkspace (context .Background (), "file.txt" , ReadFileInWorkspaceOptions {
55
+ content , err := g .ReadFileInWorkspace (context .Background (), "file.txt" , ReadFileInWorkspaceOptions {
49
56
WorkspaceID : newID ,
50
57
})
51
58
if err != nil {
52
- t .Errorf ("Error reading file: %v" , err )
59
+ t .Fatalf ("Error reading file: %v" , err )
53
60
}
54
61
55
- if ! bytes .Equal (data , []byte ("hello world" )) {
56
- t .Errorf ("Unexpected content: %s" , data )
62
+ if ! bytes .Equal (content . Content , []byte ("hello world" )) {
63
+ t .Errorf ("Unexpected content: %s" , content . Content )
57
64
}
58
65
59
66
err = g .DeleteWorkspace (context .Background (), id )
60
67
if err != nil {
61
68
t .Errorf ("Error deleting workspace: %v" , err )
62
69
}
63
-
64
- err = g .DeleteWorkspace (context .Background (), newID )
65
- if err != nil {
66
- t .Errorf ("Error deleting new workspace: %v" , err )
67
- }
68
70
}
69
71
70
72
func TestWriteReadAndDeleteFileFromWorkspace (t * testing.T ) {
@@ -90,8 +92,26 @@ func TestWriteReadAndDeleteFileFromWorkspace(t *testing.T) {
90
92
t .Errorf ("Error reading file: %v" , err )
91
93
}
92
94
93
- if ! bytes .Equal (content , []byte ("test" )) {
94
- t .Errorf ("Unexpected content: %s" , content )
95
+ if ! bytes .Equal (content .Content , []byte ("test" )) {
96
+ t .Errorf ("Unexpected content: %s" , content .Content )
97
+ }
98
+
99
+ if content .RevisionID != "" {
100
+ t .Errorf ("Unexpected file revision ID when not requesting it: %s" , content .RevisionID )
101
+ }
102
+
103
+ // Read the file and request the revision ID
104
+ content , err = g .ReadFileInWorkspace (context .Background (), "test.txt" , ReadFileInWorkspaceOptions {WorkspaceID : id , WithLatestRevisionID : true })
105
+ if err != nil {
106
+ t .Errorf ("Error reading file: %v" , err )
107
+ }
108
+
109
+ if ! bytes .Equal (content .Content , []byte ("test" )) {
110
+ t .Errorf ("Unexpected content: %s" , content .Content )
111
+ }
112
+
113
+ if content .RevisionID == "" {
114
+ t .Errorf ("Expected file revision ID when requesting it: %s" , content .RevisionID )
95
115
}
96
116
97
117
// Stat the file to ensure it exists
@@ -120,6 +140,24 @@ func TestWriteReadAndDeleteFileFromWorkspace(t *testing.T) {
120
140
t .Errorf ("Unexpected file mime type: %s" , fileInfo .MimeType )
121
141
}
122
142
143
+ if fileInfo .RevisionID != "" {
144
+ t .Errorf ("Unexpected file revision ID when not requesting it: %s" , fileInfo .RevisionID )
145
+ }
146
+
147
+ // Stat file and request the revision ID
148
+ fileInfo , err = g .StatFileInWorkspace (context .Background (), "test.txt" , StatFileInWorkspaceOptions {WorkspaceID : id , WithLatestRevisionID : true })
149
+ if err != nil {
150
+ t .Errorf ("Error statting file: %v" , err )
151
+ }
152
+
153
+ if fileInfo .WorkspaceID != id {
154
+ t .Errorf ("Unexpected file workspace ID: %v" , fileInfo .WorkspaceID )
155
+ }
156
+
157
+ if fileInfo .RevisionID == "" {
158
+ t .Errorf ("Expected file revision ID when requesting it: %s" , fileInfo .RevisionID )
159
+ }
160
+
123
161
// Ensure we get the error we expect when trying to read a non-existent file
124
162
_ , err = g .ReadFileInWorkspace (context .Background (), "test1.txt" , ReadFileInWorkspaceOptions {WorkspaceID : id })
125
163
if nf := (* NotFoundInWorkspaceError )(nil ); ! errors .As (err , & nf ) {
@@ -322,7 +360,7 @@ func TestConflictsForFileInWorkspace(t *testing.T) {
322
360
323
361
ce := (* ConflictInWorkspaceError )(nil )
324
362
// Writing a new file with a non-zero latest revision should fail
325
- err = g .WriteFileInWorkspace (context .Background (), "test.txt" , []byte ("test0" ), WriteFileInWorkspaceOptions {WorkspaceID : id , LatestRevision : "1" })
363
+ err = g .WriteFileInWorkspace (context .Background (), "test.txt" , []byte ("test0" ), WriteFileInWorkspaceOptions {WorkspaceID : id , LatestRevisionID : "1" })
326
364
if err == nil || ! errors .As (err , & ce ) {
327
365
t .Errorf ("Expected error writing file with non-zero latest revision: %v" , err )
328
366
}
@@ -347,7 +385,7 @@ func TestConflictsForFileInWorkspace(t *testing.T) {
347
385
}
348
386
349
387
// Writing to the file with the latest revision should succeed
350
- err = g .WriteFileInWorkspace (context .Background (), "test.txt" , []byte ("test2" ), WriteFileInWorkspaceOptions {WorkspaceID : id , LatestRevision : revisions [0 ].RevisionID })
388
+ err = g .WriteFileInWorkspace (context .Background (), "test.txt" , []byte ("test2" ), WriteFileInWorkspaceOptions {WorkspaceID : id , LatestRevisionID : revisions [0 ].RevisionID })
351
389
if err != nil {
352
390
t .Fatalf ("Error creating file: %v" , err )
353
391
}
@@ -362,12 +400,13 @@ func TestConflictsForFileInWorkspace(t *testing.T) {
362
400
}
363
401
364
402
// Writing to the file with the same revision should fail
365
- err = g .WriteFileInWorkspace (context .Background (), "test.txt" , []byte ("test3" ), WriteFileInWorkspaceOptions {WorkspaceID : id , LatestRevision : revisions [0 ].RevisionID })
403
+ err = g .WriteFileInWorkspace (context .Background (), "test.txt" , []byte ("test3" ), WriteFileInWorkspaceOptions {WorkspaceID : id , LatestRevisionID : revisions [0 ].RevisionID })
366
404
if err == nil || ! errors .As (err , & ce ) {
367
405
t .Errorf ("Expected error writing file with same revision: %v" , err )
368
406
}
369
407
370
- err = g .DeleteRevisionForFileInWorkspace (context .Background (), "test.txt" , revisions [1 ].RevisionID , DeleteRevisionForFileInWorkspaceOptions {WorkspaceID : id })
408
+ latestRevisionID := revisions [1 ].RevisionID
409
+ err = g .DeleteRevisionForFileInWorkspace (context .Background (), "test.txt" , latestRevisionID , DeleteRevisionForFileInWorkspaceOptions {WorkspaceID : id })
371
410
if err != nil {
372
411
t .Errorf ("Error deleting revision for file: %v" , err )
373
412
}
@@ -381,10 +420,16 @@ func TestConflictsForFileInWorkspace(t *testing.T) {
381
420
t .Errorf ("Unexpected number of revisions: %d" , len (revisions ))
382
421
}
383
422
423
+ // Ensure we cannot write a new file with the zero-th revision ID
424
+ err = g .WriteFileInWorkspace (context .Background (), "test.txt" , []byte ("test4" ), WriteFileInWorkspaceOptions {WorkspaceID : id , LatestRevisionID : revisions [0 ].RevisionID })
425
+ if err == nil || ! errors .As (err , & ce ) {
426
+ t .Errorf ("Unexpected error writing to file: %v" , err )
427
+ }
428
+
384
429
// Ensure we can write a new file after deleting the latest revision
385
- err = g .WriteFileInWorkspace (context .Background (), "test.txt" , []byte ("test4" ), WriteFileInWorkspaceOptions {WorkspaceID : id , LatestRevision : revisions [ 0 ]. RevisionID })
430
+ err = g .WriteFileInWorkspace (context .Background (), "test.txt" , []byte ("test4" ), WriteFileInWorkspaceOptions {WorkspaceID : id , LatestRevisionID : latestRevisionID })
386
431
if err != nil {
387
- t .Fatalf ("Error creating file: %v" , err )
432
+ t .Errorf ("Error writing file: %v" , err )
388
433
}
389
434
390
435
err = g .DeleteFileInWorkspace (context .Background (), "test.txt" , DeleteFileInWorkspaceOptions {WorkspaceID : id })
@@ -501,15 +546,15 @@ func TestCreateAndDeleteWorkspaceFromWorkspaceS3(t *testing.T) {
501
546
t .Errorf ("Error creating workspace from workspace: %v" , err )
502
547
}
503
548
504
- data , err := g .ReadFileInWorkspace (context .Background (), "file.txt" , ReadFileInWorkspaceOptions {
549
+ content , err := g .ReadFileInWorkspace (context .Background (), "file.txt" , ReadFileInWorkspaceOptions {
505
550
WorkspaceID : newID ,
506
551
})
507
552
if err != nil {
508
553
t .Errorf ("Error reading file: %v" , err )
509
554
}
510
555
511
- if ! bytes .Equal (data , []byte ("hello world" )) {
512
- t .Errorf ("Unexpected content: %s" , data )
556
+ if ! bytes .Equal (content . Content , []byte ("hello world" )) {
557
+ t .Errorf ("Unexpected content: %s" , content . Content )
513
558
}
514
559
515
560
err = g .DeleteWorkspace (context .Background (), id )
@@ -545,15 +590,15 @@ func TestCreateAndDeleteDirectoryWorkspaceFromWorkspaceS3(t *testing.T) {
545
590
t .Errorf ("Error creating workspace from workspace: %v" , err )
546
591
}
547
592
548
- data , err := g .ReadFileInWorkspace (context .Background (), "file.txt" , ReadFileInWorkspaceOptions {
593
+ content , err := g .ReadFileInWorkspace (context .Background (), "file.txt" , ReadFileInWorkspaceOptions {
549
594
WorkspaceID : newID ,
550
595
})
551
596
if err != nil {
552
597
t .Errorf ("Error reading file: %v" , err )
553
598
}
554
599
555
- if ! bytes .Equal (data , []byte ("hello world" )) {
556
- t .Errorf ("Unexpected content: %s" , data )
600
+ if ! bytes .Equal (content . Content , []byte ("hello world" )) {
601
+ t .Errorf ("Unexpected content: %s" , content . Content )
557
602
}
558
603
559
604
err = g .DeleteWorkspace (context .Background (), id )
@@ -577,6 +622,13 @@ func TestCreateAndDeleteS3WorkspaceFromWorkspaceDirectory(t *testing.T) {
577
622
t .Fatalf ("Error creating workspace: %v" , err )
578
623
}
579
624
625
+ t .Cleanup (func () {
626
+ err = g .DeleteWorkspace (context .Background (), id )
627
+ if err != nil {
628
+ t .Errorf ("Error deleting workspace: %v" , err )
629
+ }
630
+ })
631
+
580
632
err = g .WriteFileInWorkspace (context .Background (), "file.txt" , []byte ("hello world" ), WriteFileInWorkspaceOptions {
581
633
WorkspaceID : id ,
582
634
})
@@ -589,26 +641,21 @@ func TestCreateAndDeleteS3WorkspaceFromWorkspaceDirectory(t *testing.T) {
589
641
t .Errorf ("Error creating workspace from workspace: %v" , err )
590
642
}
591
643
592
- data , err := g .ReadFileInWorkspace (context .Background (), "file.txt" , ReadFileInWorkspaceOptions {
644
+ content , err := g .ReadFileInWorkspace (context .Background (), "file.txt" , ReadFileInWorkspaceOptions {
593
645
WorkspaceID : newID ,
594
646
})
595
647
if err != nil {
596
- t .Errorf ("Error reading file: %v" , err )
648
+ t .Fatalf ("Error reading file: %v" , err )
597
649
}
598
650
599
- if ! bytes .Equal (data , []byte ("hello world" )) {
600
- t .Errorf ("Unexpected content: %s" , data )
651
+ if ! bytes .Equal (content . Content , []byte ("hello world" )) {
652
+ t .Errorf ("Unexpected content: %s" , content . Content )
601
653
}
602
654
603
655
err = g .DeleteWorkspace (context .Background (), id )
604
656
if err != nil {
605
657
t .Errorf ("Error deleting workspace: %v" , err )
606
658
}
607
-
608
- err = g .DeleteWorkspace (context .Background (), newID )
609
- if err != nil {
610
- t .Errorf ("Error deleting new workspace: %v" , err )
611
- }
612
659
}
613
660
614
661
func TestWriteReadAndDeleteFileFromWorkspaceS3 (t * testing.T ) {
@@ -638,8 +685,26 @@ func TestWriteReadAndDeleteFileFromWorkspaceS3(t *testing.T) {
638
685
t .Errorf ("Error reading file: %v" , err )
639
686
}
640
687
641
- if ! bytes .Equal (content , []byte ("test" )) {
642
- t .Errorf ("Unexpected content: %s" , content )
688
+ if ! bytes .Equal (content .Content , []byte ("test" )) {
689
+ t .Errorf ("Unexpected content: %s" , content .Content )
690
+ }
691
+
692
+ if content .RevisionID != "" {
693
+ t .Errorf ("Unexpected file revision ID when not requesting it: %s" , content .RevisionID )
694
+ }
695
+
696
+ // Read the file and request the revision ID
697
+ content , err = g .ReadFileInWorkspace (context .Background (), "test.txt" , ReadFileInWorkspaceOptions {WorkspaceID : id , WithLatestRevisionID : true })
698
+ if err != nil {
699
+ t .Errorf ("Error reading file: %v" , err )
700
+ }
701
+
702
+ if ! bytes .Equal (content .Content , []byte ("test" )) {
703
+ t .Errorf ("Unexpected content: %s" , content .Content )
704
+ }
705
+
706
+ if content .RevisionID == "" {
707
+ t .Errorf ("Expected file revision ID when requesting it: %s" , content .RevisionID )
643
708
}
644
709
645
710
// Stat the file to ensure it exists
@@ -668,6 +733,24 @@ func TestWriteReadAndDeleteFileFromWorkspaceS3(t *testing.T) {
668
733
t .Errorf ("Unexpected file mime type: %s" , fileInfo .MimeType )
669
734
}
670
735
736
+ if fileInfo .RevisionID != "" {
737
+ t .Errorf ("Unexpected file revision ID when not requesting it: %s" , fileInfo .RevisionID )
738
+ }
739
+
740
+ // Stat file and request the revision ID
741
+ fileInfo , err = g .StatFileInWorkspace (context .Background (), "test.txt" , StatFileInWorkspaceOptions {WorkspaceID : id , WithLatestRevisionID : true })
742
+ if err != nil {
743
+ t .Errorf ("Error statting file: %v" , err )
744
+ }
745
+
746
+ if fileInfo .WorkspaceID != id {
747
+ t .Errorf ("Unexpected file workspace ID: %v" , fileInfo .WorkspaceID )
748
+ }
749
+
750
+ if fileInfo .RevisionID == "" {
751
+ t .Errorf ("Expected file revision ID when requesting it: %s" , fileInfo .RevisionID )
752
+ }
753
+
671
754
// Ensure we get the error we expect when trying to read a non-existent file
672
755
_ , err = g .ReadFileInWorkspace (context .Background (), "test1.txt" , ReadFileInWorkspaceOptions {WorkspaceID : id })
673
756
if nf := (* NotFoundInWorkspaceError )(nil ); ! errors .As (err , & nf ) {
@@ -795,7 +878,7 @@ func TestConflictsForFileInWorkspaceS3(t *testing.T) {
795
878
796
879
ce := (* ConflictInWorkspaceError )(nil )
797
880
// Writing a new file with a non-zero latest revision should fail
798
- err = g .WriteFileInWorkspace (context .Background (), "test.txt" , []byte ("test0" ), WriteFileInWorkspaceOptions {WorkspaceID : id , LatestRevision : "1" })
881
+ err = g .WriteFileInWorkspace (context .Background (), "test.txt" , []byte ("test0" ), WriteFileInWorkspaceOptions {WorkspaceID : id , LatestRevisionID : "1" })
799
882
if err == nil || ! errors .As (err , & ce ) {
800
883
t .Errorf ("Expected error writing file with non-zero latest revision: %v" , err )
801
884
}
@@ -820,7 +903,7 @@ func TestConflictsForFileInWorkspaceS3(t *testing.T) {
820
903
}
821
904
822
905
// Writing to the file with the latest revision should succeed
823
- err = g .WriteFileInWorkspace (context .Background (), "test.txt" , []byte ("test2" ), WriteFileInWorkspaceOptions {WorkspaceID : id , LatestRevision : revisions [0 ].RevisionID })
906
+ err = g .WriteFileInWorkspace (context .Background (), "test.txt" , []byte ("test2" ), WriteFileInWorkspaceOptions {WorkspaceID : id , LatestRevisionID : revisions [0 ].RevisionID })
824
907
if err != nil {
825
908
t .Fatalf ("Error creating file: %v" , err )
826
909
}
@@ -835,12 +918,13 @@ func TestConflictsForFileInWorkspaceS3(t *testing.T) {
835
918
}
836
919
837
920
// Writing to the file with the same revision should fail
838
- err = g .WriteFileInWorkspace (context .Background (), "test.txt" , []byte ("test3" ), WriteFileInWorkspaceOptions {WorkspaceID : id , LatestRevision : revisions [0 ].RevisionID })
921
+ err = g .WriteFileInWorkspace (context .Background (), "test.txt" , []byte ("test3" ), WriteFileInWorkspaceOptions {WorkspaceID : id , LatestRevisionID : revisions [0 ].RevisionID })
839
922
if err == nil || ! errors .As (err , & ce ) {
840
923
t .Errorf ("Expected error writing file with same revision: %v" , err )
841
924
}
842
925
843
- err = g .DeleteRevisionForFileInWorkspace (context .Background (), "test.txt" , revisions [1 ].RevisionID , DeleteRevisionForFileInWorkspaceOptions {WorkspaceID : id })
926
+ latestRevisionID := revisions [1 ].RevisionID
927
+ err = g .DeleteRevisionForFileInWorkspace (context .Background (), "test.txt" , latestRevisionID , DeleteRevisionForFileInWorkspaceOptions {WorkspaceID : id })
844
928
if err != nil {
845
929
t .Errorf ("Error deleting revision for file: %v" , err )
846
930
}
@@ -854,8 +938,14 @@ func TestConflictsForFileInWorkspaceS3(t *testing.T) {
854
938
t .Errorf ("Unexpected number of revisions: %d" , len (revisions ))
855
939
}
856
940
941
+ // Ensure we cannot write a new file with the zero-th revision ID
942
+ err = g .WriteFileInWorkspace (context .Background (), "test.txt" , []byte ("test4" ), WriteFileInWorkspaceOptions {WorkspaceID : id , LatestRevisionID : revisions [0 ].RevisionID })
943
+ if err == nil || ! errors .As (err , & ce ) {
944
+ t .Fatalf ("Error creating file: %v" , err )
945
+ }
946
+
857
947
// Ensure we can write a new file after deleting the latest revision
858
- err = g .WriteFileInWorkspace (context .Background (), "test.txt" , []byte ("test4" ), WriteFileInWorkspaceOptions {WorkspaceID : id , LatestRevision : revisions [ 0 ]. RevisionID })
948
+ err = g .WriteFileInWorkspace (context .Background (), "test.txt" , []byte ("test4" ), WriteFileInWorkspaceOptions {WorkspaceID : id , LatestRevisionID : latestRevisionID })
859
949
if err != nil {
860
950
t .Fatalf ("Error creating file: %v" , err )
861
951
}
0 commit comments