@@ -14,6 +14,8 @@ import (
14
14
"google.golang.org/grpc/metadata"
15
15
16
16
pb "github.com/reearth/reearth/server/internal/adapter/internalapi/schemas/internalapi/v1"
17
+ "github.com/reearth/reearth/server/internal/usecase/repo"
18
+ "github.com/reearth/reearth/server/pkg/id"
17
19
)
18
20
19
21
func SafeClose (c io.Closer ) {
@@ -22,12 +24,15 @@ func SafeClose(c io.Closer) {
22
24
}
23
25
}
24
26
27
+ // export REEARTH_DB=mongodb://localhost
28
+ // go test -v -run TestInternalAPI ./e2e/...
29
+
25
30
func TestInternalAPI_private (t * testing.T ) {
26
- GRPCServer (t , baseSeeder )
31
+ _ , r , _ := GRPCServer (t , baseSeeder )
27
32
28
33
runTestWithUser (t , uID .String (), func (client pb.ReEarthVisualizerClient , ctx context.Context ) {
29
34
30
- // -------- default Project
35
+ // create default Project
31
36
res , err := client .CreateProject (ctx , & pb.CreateProjectRequest {
32
37
TeamId : wID .String (),
33
38
Visualizer : pb .Visualizer_VISUALIZER_CESIUM ,
@@ -37,62 +42,67 @@ func TestInternalAPI_private(t *testing.T) {
37
42
// Visibility: lo.ToPtr("private"),
38
43
})
39
44
assert .Nil (t , err )
45
+ checProject (t , ctx , r , res )
40
46
41
- // -------- private
47
+ // get -> private
42
48
res2 , err := client .GetProject (ctx , & pb.GetProjectRequest {
43
49
ProjectId : res .Project .Id ,
44
50
})
45
51
assert .Nil (t , err )
46
52
assert .Equal (t , "private" , res2 .Project .Visibility )
47
53
48
- // -------- private Project
49
- res , err = client .CreateProject (ctx , & pb.CreateProjectRequest {
54
+ // create private Project
55
+ _ , err = client .CreateProject (ctx , & pb.CreateProjectRequest {
50
56
TeamId : wID .String (),
51
57
Visualizer : pb .Visualizer_VISUALIZER_CESIUM ,
52
- Name : lo .ToPtr ("Test Project1 " ),
53
- Description : lo .ToPtr ("Test Description1 " ),
58
+ Name : lo .ToPtr ("Test Project2 " ),
59
+ Description : lo .ToPtr ("Test Description2 " ),
54
60
CoreSupport : lo .ToPtr (true ),
55
61
Visibility : lo .ToPtr ("private" ),
56
62
})
57
63
assert .Nil (t , err )
64
+ checProject (t , ctx , r , res )
58
65
59
- // -------- private
66
+ // get -> private
60
67
res2 , err = client .GetProject (ctx , & pb.GetProjectRequest {
61
68
ProjectId : res .Project .Id ,
62
69
})
63
70
assert .Nil (t , err )
64
71
assert .Equal (t , "private" , res2 .Project .Visibility )
65
72
66
- // -------- public list size 3
67
73
// 0: creante seeder => null
68
74
// 1: creante default => private
69
75
// 2: creante private => private
76
+
77
+ // Authenticated: true => get list size 3
70
78
res3 , err := client .GetProjectList (ctx , & pb.GetProjectListRequest {
71
- TeamId : wID .String (),
79
+ TeamId : wID .String (),
80
+ Authenticated : true ,
72
81
})
73
82
assert .Nil (t , err )
74
83
assert .Equal (t , 3 , len (res3 .Projects ))
75
84
assert .Equal (t , "" , res3 .Projects [0 ].Visibility )
76
85
assert .Equal (t , "private" , res3 .Projects [1 ].Visibility )
77
86
assert .Equal (t , "private" , res3 .Projects [2 ].Visibility )
78
- })
79
87
80
- // User2 test
81
- runTestWithUser (t , uID2 .String (), func (client pb.ReEarthVisualizerClient , ctx context.Context ) {
82
- // -------- public list size 0 (Not authenticated)
83
- res3 , err := client .GetProjectList (ctx , & pb.GetProjectListRequest {
84
- TeamId : wID .String (),
88
+ // Authenticated: false => get list size 0
89
+ res3 , err = client .GetProjectList (ctx , & pb.GetProjectListRequest {
90
+ TeamId : wID .String (),
91
+ Authenticated : false ,
85
92
})
86
93
assert .Nil (t , err )
87
94
assert .Equal (t , 0 , len (res3 .Projects ))
95
+
88
96
})
97
+
89
98
}
90
99
91
100
func TestInternalAPI_public (t * testing.T ) {
92
- GRPCServer (t , baseSeeder )
101
+ _ , r , _ := GRPCServer (t , baseSeeder )
93
102
94
103
runTestWithUser (t , uID .String (), func (client pb.ReEarthVisualizerClient , ctx context.Context ) {
95
- // -------- public Project
104
+
105
+ // create public Project
96
106
res , err := client .CreateProject (ctx , & pb.CreateProjectRequest {
97
107
TeamId : wID .String (),
98
108
Visualizer : pb .Visualizer_VISUALIZER_CESIUM ,
@@ -102,55 +112,59 @@ func TestInternalAPI_public(t *testing.T) {
102
112
Visibility : lo .ToPtr ("public" ),
103
113
})
104
114
assert .Nil (t , err )
115
+ checProject (t , ctx , r , res )
105
116
106
- // -------- public
117
+ // get -> public
107
118
res2 , err := client .GetProject (ctx , & pb.GetProjectRequest {
108
119
ProjectId : res .Project .Id ,
109
120
})
110
121
assert .Nil (t , err )
111
122
assert .Equal (t , "public" , res2 .Project .Visibility )
112
123
113
- // -------- private Project
124
+ // create private Project
114
125
res , err = client .CreateProject (ctx , & pb.CreateProjectRequest {
115
126
TeamId : wID .String (),
116
127
Visualizer : pb .Visualizer_VISUALIZER_CESIUM ,
117
- Name : lo .ToPtr ("Test Project1 " ),
118
- Description : lo .ToPtr ("Test Description1 " ),
128
+ Name : lo .ToPtr ("Test Project2 " ),
129
+ Description : lo .ToPtr ("Test Description2 " ),
119
130
CoreSupport : lo .ToPtr (true ),
120
131
Visibility : lo .ToPtr ("private" ),
121
132
})
122
133
assert .Nil (t , err )
134
+ checProject (t , ctx , r , res )
123
135
124
- // -------- private
136
+ // get -> private
125
137
res2 , err = client .GetProject (ctx , & pb.GetProjectRequest {
126
138
ProjectId : res .Project .Id ,
127
139
})
128
140
assert .Nil (t , err )
129
141
assert .Equal (t , "private" , res2 .Project .Visibility )
130
142
131
- // -------- list size 3
132
143
// 0: creante seeder => null
133
144
// 1: creante public => public
134
145
// 2: creante private => private
146
+
147
+ // Authenticated: true => get list size 3
135
148
res3 , err := client .GetProjectList (ctx , & pb.GetProjectListRequest {
136
- TeamId : wID .String (),
149
+ TeamId : wID .String (),
150
+ Authenticated : true ,
137
151
})
138
152
assert .Nil (t , err )
139
153
assert .Equal (t , 3 , len (res3 .Projects ))
140
154
assert .Equal (t , "" , res3 .Projects [0 ].Visibility )
141
155
assert .Equal (t , "public" , res3 .Projects [1 ].Visibility )
142
156
assert .Equal (t , "private" , res3 .Projects [2 ].Visibility )
143
- })
144
157
145
- // User2 test
146
- runTestWithUser (t , uID2 .String (), func (client pb.ReEarthVisualizerClient , ctx context.Context ) {
147
- // -------- public list size 1 (Not authenticated)
148
- res3 , err := client .GetProjectList (ctx , & pb.GetProjectListRequest {
149
- TeamId : wID .String (),
158
+ // Authenticated: true => get list size 1
159
+ res3 , err = client .GetProjectList (ctx , & pb.GetProjectListRequest {
160
+ TeamId : wID .String (),
161
+ Authenticated : false ,
150
162
})
151
163
assert .Nil (t , err )
152
164
assert .Equal (t , 1 , len (res3 .Projects ))
165
+
153
166
})
167
+
154
168
}
155
169
156
170
func runTestWithUser (t * testing.T , userID string , testFunc func (client pb.ReEarthVisualizerClient , ctx context.Context )) {
@@ -171,3 +185,16 @@ func runTestWithUser(t *testing.T, userID string, testFunc func(client pb.ReEart
171
185
client := pb .NewReEarthVisualizerClient (conn )
172
186
testFunc (client , ctx )
173
187
}
188
+
189
+ func checProject (t * testing.T , ctx context.Context , r * repo.Container , res * pb.CreateProjectResponse ) {
190
+ pid , err := id .ProjectIDFrom (res .GetProject ().Id )
191
+ assert .Nil (t , err )
192
+ prj , err := r .Project .FindByID (ctx , pid )
193
+ assert .Nil (t , err )
194
+ c , err := r .Scene .FindByProject (ctx , prj .ID ())
195
+ assert .Nil (t , err )
196
+ assert .NotNil (t , c )
197
+ s , err := r .Storytelling .FindByScene (ctx , c .ID ())
198
+ assert .Nil (t , err )
199
+ assert .Equal (t , 1 , len (* s ))
200
+ }
0 commit comments