@@ -9,15 +9,15 @@ defmodule Guard.FrontRepo.ServiceAccountTest do
9
9
user = create_test_user ( )
10
10
11
11
attrs = % {
12
- user_id : user . id ,
12
+ id : user . id ,
13
13
description: "Test service account description" ,
14
- creator_id: Ecto.UUID . generate ( )
14
+ creator_id: user . id
15
15
}
16
16
17
17
changeset = ServiceAccount . changeset ( % ServiceAccount { } , attrs )
18
18
19
19
assert changeset . valid?
20
- assert changeset . changes . user_id == user . id
20
+ assert changeset . changes . id == user . id
21
21
assert changeset . changes . description == "Test service account description"
22
22
assert changeset . changes . creator_id == attrs . creator_id
23
23
end
@@ -26,21 +26,23 @@ defmodule Guard.FrontRepo.ServiceAccountTest do
26
26
user = create_test_user ( )
27
27
28
28
attrs = % {
29
- user_id: user . id
29
+ id: user . id ,
30
+ creator_id: user . id
30
31
}
31
32
32
33
changeset = ServiceAccount . changeset ( % ServiceAccount { } , attrs )
33
34
34
35
assert changeset . valid?
35
- assert changeset . changes . user_id == user . id
36
+ assert changeset . changes . id == user . id
36
37
end
37
38
38
- test "sets id to match user_id " do
39
+ test "sets id to match user id " do
39
40
user = create_test_user ( )
40
41
41
42
attrs = % {
42
- user_id: user . id ,
43
- description: "Test description"
43
+ id: user . id ,
44
+ description: "Test description" ,
45
+ creator_id: user . id
44
46
}
45
47
46
48
changeset = ServiceAccount . changeset ( % ServiceAccount { } , attrs )
@@ -49,22 +51,37 @@ defmodule Guard.FrontRepo.ServiceAccountTest do
49
51
assert changeset . changes . id == user . id
50
52
end
51
53
52
- test "requires user_id field" do
54
+ test "requires id field" do
53
55
attrs = % {
54
56
description: "Test description"
55
57
}
56
58
57
59
changeset = ServiceAccount . changeset ( % ServiceAccount { } , attrs )
58
60
59
61
refute changeset . valid?
60
- assert { "can't be blank" , _ } = changeset . errors [ :user_id ]
62
+ assert { "can't be blank" , _ } = changeset . errors [ :id ]
63
+ end
64
+
65
+ test "requires creator_id field" do
66
+ user = create_test_user ( )
67
+
68
+ attrs = % {
69
+ id: user . id ,
70
+ description: "Test description"
71
+ }
72
+
73
+ changeset = ServiceAccount . changeset ( % ServiceAccount { } , attrs )
74
+
75
+ refute changeset . valid?
76
+ assert { "can't be blank" , _ } = changeset . errors [ :creator_id ]
61
77
end
62
78
63
79
test "validates description length" do
64
80
user = create_test_user ( )
65
81
66
82
attrs = % {
67
- user_id: user . id ,
83
+ id: user . id ,
84
+ creator_id: user . id ,
68
85
# Exceeds 500 character limit
69
86
description: String . duplicate ( "a" , 501 )
70
87
}
@@ -79,7 +96,8 @@ defmodule Guard.FrontRepo.ServiceAccountTest do
79
96
user = create_test_user ( )
80
97
81
98
attrs = % {
82
- user_id: user . id ,
99
+ id: user . id ,
100
+ creator_id: user . id ,
83
101
# Exactly 500 characters
84
102
description: String . duplicate ( "a" , 500 )
85
103
}
@@ -93,7 +111,8 @@ defmodule Guard.FrontRepo.ServiceAccountTest do
93
111
user = create_test_user ( )
94
112
95
113
attrs = % {
96
- user_id: user . id ,
114
+ id: user . id ,
115
+ creator_id: user . id ,
97
116
description: ""
98
117
}
99
118
@@ -106,7 +125,8 @@ defmodule Guard.FrontRepo.ServiceAccountTest do
106
125
user = create_test_user ( )
107
126
108
127
attrs = % {
109
- user_id: user . id ,
128
+ id: user . id ,
129
+ creator_id: user . id ,
110
130
description: nil
111
131
}
112
132
@@ -115,11 +135,13 @@ defmodule Guard.FrontRepo.ServiceAccountTest do
115
135
assert changeset . valid?
116
136
end
117
137
118
- test "enforces foreign key constraint on user_id " do
138
+ test "enforces foreign key constraint on id " do
119
139
non_existent_user_id = Ecto.UUID . generate ( )
140
+ creator_user = create_test_user ( )
120
141
121
142
attrs = % {
122
- user_id: non_existent_user_id ,
143
+ id: non_existent_user_id ,
144
+ creator_id: creator_user . id ,
123
145
description: "Test description"
124
146
}
125
147
@@ -129,24 +151,27 @@ defmodule Guard.FrontRepo.ServiceAccountTest do
129
151
assert changeset . valid?
130
152
131
153
{ :error , changeset } = FrontRepo . insert ( changeset )
132
- assert { "does not exist" , _ } = changeset . errors [ :user_id ]
154
+ assert { "does not exist" , _ } = changeset . errors [ :id ]
133
155
end
134
156
135
- test "enforces unique constraint on user_id " do
157
+ test "enforces unique constraint on id " do
136
158
user = create_test_user ( )
159
+ creator_user = create_test_user ( )
137
160
138
161
# Create first service account
139
162
attrs1 = % {
140
- user_id: user . id ,
163
+ id: user . id ,
164
+ creator_id: creator_user . id ,
141
165
description: "First service account"
142
166
}
143
167
144
168
changeset1 = ServiceAccount . changeset ( % ServiceAccount { } , attrs1 )
145
169
{ :ok , _ } = FrontRepo . insert ( changeset1 )
146
170
147
- # Try to create second service account with same user_id
171
+ # Try to create second service account with same id
148
172
attrs2 = % {
149
- user_id: user . id ,
173
+ id: user . id ,
174
+ creator_id: creator_user . id ,
150
175
description: "Second service account"
151
176
}
152
177
@@ -156,7 +181,7 @@ defmodule Guard.FrontRepo.ServiceAccountTest do
156
181
assert changeset2 . valid?
157
182
158
183
{ :error , changeset } = FrontRepo . insert ( changeset2 )
159
- assert { "has already been taken" , _ } = changeset . errors [ :user_id ]
184
+ assert { "has already been taken" , _ } = changeset . errors [ :id ]
160
185
end
161
186
162
187
end
@@ -204,39 +229,39 @@ defmodule Guard.FrontRepo.ServiceAccountTest do
204
229
assert changeset . valid?
205
230
end
206
231
207
- test "does not allow updating user_id " do
232
+ test "does not allow updating id " do
208
233
user = create_test_user ( )
209
234
service_account = create_test_service_account ( user )
210
235
another_user = create_test_user ( )
211
236
212
237
attrs = % {
213
- user_id : another_user . id ,
238
+ id : another_user . id ,
214
239
description: "Updated description"
215
240
}
216
241
217
242
changeset = ServiceAccount . update_changeset ( service_account , attrs )
218
243
219
- # user_id should not be in the changeset changes
244
+ # id should not be in the changeset changes
220
245
assert changeset . valid?
221
- refute Map . has_key? ( changeset . changes , :user_id )
246
+ refute Map . has_key? ( changeset . changes , :id )
222
247
assert changeset . changes . description == "Updated description"
223
248
end
224
249
225
- test "does not allow updating id " do
250
+ test "does not allow updating creator_id " do
226
251
user = create_test_user ( )
227
252
service_account = create_test_service_account ( user )
228
- new_id = Ecto.UUID . generate ( )
253
+ new_creator_id = Ecto.UUID . generate ( )
229
254
230
255
attrs = % {
231
- id: new_id ,
256
+ creator_id: new_creator_id ,
232
257
description: "Updated description"
233
258
}
234
259
235
260
changeset = ServiceAccount . update_changeset ( service_account , attrs )
236
261
237
- # id should not be in the changeset changes
262
+ # creator_id should not be in the changeset changes
238
263
assert changeset . valid?
239
- refute Map . has_key? ( changeset . changes , :id )
264
+ refute Map . has_key? ( changeset . changes , :creator_id )
240
265
assert changeset . changes . description == "Updated description"
241
266
end
242
267
end
@@ -271,7 +296,7 @@ defmodule Guard.FrontRepo.ServiceAccountTest do
271
296
service_account = create_test_service_account ( user )
272
297
273
298
assert is_binary ( service_account . id )
274
- assert is_binary ( service_account . user_id )
299
+ assert is_binary ( service_account . creator_id )
275
300
assert is_binary ( service_account . description ) or is_nil ( service_account . description )
276
301
end
277
302
@@ -280,7 +305,7 @@ defmodule Guard.FrontRepo.ServiceAccountTest do
280
305
281
306
attrs = % {
282
307
id: user . id ,
283
- user_id : user . id ,
308
+ creator_id : user . id ,
284
309
description: "Test description"
285
310
}
286
311
@@ -312,10 +337,13 @@ defmodule Guard.FrontRepo.ServiceAccountTest do
312
337
end
313
338
314
339
defp create_test_service_account ( user ) do
340
+ # Create a creator user to satisfy foreign key constraint
341
+ creator_user = create_test_user ( )
342
+
315
343
attrs = % {
316
- user_id : user . id ,
344
+ id : user . id ,
317
345
description: "Test service account description" ,
318
- creator_id: Ecto.UUID . generate ( )
346
+ creator_id: creator_user . id
319
347
}
320
348
321
349
changeset = ServiceAccount . changeset ( % ServiceAccount { } , attrs )
0 commit comments