@@ -20,11 +20,20 @@ import (
20
20
21
21
var w = dto.Workspace {ID : "w" }
22
22
23
+ func newTEDNotFound (t * testing.T ) defaults.TimeEntryDefaults {
24
+ ted := mocks .NewMockTimeEntryDefaults (t )
25
+ ted .EXPECT ().Read ().Return (
26
+ defaults.DefaultTimeEntry {}, defaults .DefaultsFileNotFoundErr )
27
+
28
+ return ted
29
+ }
30
+
23
31
func TestNewCmdIn_ShouldBeBothBillableAndNotBillable (t * testing.T ) {
24
32
f := mocks .NewMockFactory (t )
25
33
26
34
f .EXPECT ().GetUserID ().Return ("u" , nil )
27
35
f .EXPECT ().GetWorkspaceID ().Return (w .ID , nil )
36
+ f .EXPECT ().TimeEntryDefaults ().Return (newTEDNotFound (t ))
28
37
29
38
f .EXPECT ().Config ().Return (& mocks.SimpleConfig {})
30
39
@@ -58,9 +67,10 @@ func TestNewCmdIn_ShouldBeBothBillableAndNotBillable(t *testing.T) {
58
67
t .Fatal ("should've failed" )
59
68
}
60
69
70
+ var bTrue = true
71
+ var bFalse = false
72
+
61
73
func TestNewCmdIn_ShouldNotSetBillable_WhenNotAsked (t * testing.T ) {
62
- bTrue := true
63
- bFalse := false
64
74
65
75
tts := []struct {
66
76
name string
@@ -105,6 +115,7 @@ func TestNewCmdIn_ShouldNotSetBillable_WhenNotAsked(t *testing.T) {
105
115
f .EXPECT ().GetUserID ().Return ("u" , nil )
106
116
f .EXPECT ().GetWorkspace ().Return (w , nil )
107
117
f .EXPECT ().GetWorkspaceID ().Return (w .ID , nil )
118
+ f .EXPECT ().TimeEntryDefaults ().Return (newTEDNotFound (t ))
108
119
109
120
f .EXPECT ().Config ().Return (& mocks.SimpleConfig {
110
121
AllowNameForID : true ,
@@ -259,6 +270,7 @@ func TestNewCmdIn_ShouldLookupProject_WithAndWithoutClient(t *testing.T) {
259
270
260
271
f .EXPECT ().GetUserID ().Return ("u" , nil )
261
272
f .EXPECT ().GetWorkspaceID ().Return (w .ID , nil )
273
+ f .EXPECT ().TimeEntryDefaults ().Return (newTEDNotFound (t ))
262
274
263
275
f .EXPECT ().Config ().Return (& mocks.SimpleConfig {
264
276
AllowNameForID : true ,
@@ -364,6 +376,10 @@ func TestNewCmdIn_ShouldUseDefaults(t *testing.T) {
364
376
c .EXPECT ().CreateTimeEntry (exp ).
365
377
Return (dto.TimeEntryImpl {ID : "te" }, nil )
366
378
379
+ ted := mocks .NewMockTimeEntryDefaults (t )
380
+ f .EXPECT ().TimeEntryDefaults ().Return (ted )
381
+ ted .EXPECT ().Read ().Return (d , nil )
382
+
367
383
called := false
368
384
cmd := in .NewCmdIn (f , func (
369
385
_ dto.TimeEntryImpl , _ io.Writer , _ util.OutputFlags ) error {
@@ -390,11 +406,37 @@ func TestNewCmdIn_ShouldUseDefaults(t *testing.T) {
390
406
}
391
407
392
408
ft ("only defaults" ,
393
- defaults.DefaultTimeEntry {},
409
+ defaults.DefaultTimeEntry {
410
+ Workspace : w .ID ,
411
+ ProjectID : "p1" ,
412
+ TaskID : "t" ,
413
+ Billable : & bTrue ,
414
+ TagIDs : []string {"t1" , "t2" },
415
+ },
394
416
[]string {},
395
417
api.CreateTimeEntryParam {
396
418
Workspace : w .ID ,
397
419
Start : timehlp .Now (),
420
+ ProjectID : "p1" ,
421
+ TaskID : "t" ,
422
+ Billable : & bTrue ,
423
+ TagIDs : []string {"t1" , "t2" },
424
+ },
425
+ )
426
+
427
+ ft ("flags over defaults" ,
428
+ defaults.DefaultTimeEntry {
429
+ Workspace : w .ID ,
430
+ ProjectID : "p1" ,
431
+ TaskID : "t" ,
432
+ TagIDs : []string {"t1" , "t2" },
433
+ },
434
+ []string {"-T" , "tag" , "-p" , "p2" },
435
+ api.CreateTimeEntryParam {
436
+ Workspace : w .ID ,
437
+ Start : timehlp .Now (),
438
+ ProjectID : "p2" ,
439
+ TagIDs : []string {"tag" },
398
440
},
399
441
)
400
442
}
0 commit comments