Skip to content

Commit eb79f40

Browse files
committed
(wip)
1 parent 6f12bb3 commit eb79f40

File tree

2 files changed

+51
-3
lines changed

2 files changed

+51
-3
lines changed

pkg/cmd/time-entry/in/in.go

+6
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,11 @@ func NewCmdIn(
107107
return err
108108
}
109109

110+
tei, err = util.FromDefaults(f)(tei)
111+
if err != nil {
112+
return err
113+
}
114+
110115
c, err := f.Client()
111116
if err != nil {
112117
return err
@@ -124,6 +129,7 @@ func NewCmdIn(
124129

125130
if tei, err = util.Do(
126131
tei,
132+
127133
util.FillTimeEntryWithFlags(cmd.Flags()),
128134
util.ValidateClosingTimeEntry(f),
129135
util.GetAllowNameForIDsFn(f.Config(), c),

pkg/cmd/time-entry/in/in_test.go

+45-3
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,20 @@ import (
2020

2121
var w = dto.Workspace{ID: "w"}
2222

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+
2331
func TestNewCmdIn_ShouldBeBothBillableAndNotBillable(t *testing.T) {
2432
f := mocks.NewMockFactory(t)
2533

2634
f.EXPECT().GetUserID().Return("u", nil)
2735
f.EXPECT().GetWorkspaceID().Return(w.ID, nil)
36+
f.EXPECT().TimeEntryDefaults().Return(newTEDNotFound(t))
2837

2938
f.EXPECT().Config().Return(&mocks.SimpleConfig{})
3039

@@ -58,9 +67,10 @@ func TestNewCmdIn_ShouldBeBothBillableAndNotBillable(t *testing.T) {
5867
t.Fatal("should've failed")
5968
}
6069

70+
var bTrue = true
71+
var bFalse = false
72+
6173
func TestNewCmdIn_ShouldNotSetBillable_WhenNotAsked(t *testing.T) {
62-
bTrue := true
63-
bFalse := false
6474

6575
tts := []struct {
6676
name string
@@ -105,6 +115,7 @@ func TestNewCmdIn_ShouldNotSetBillable_WhenNotAsked(t *testing.T) {
105115
f.EXPECT().GetUserID().Return("u", nil)
106116
f.EXPECT().GetWorkspace().Return(w, nil)
107117
f.EXPECT().GetWorkspaceID().Return(w.ID, nil)
118+
f.EXPECT().TimeEntryDefaults().Return(newTEDNotFound(t))
108119

109120
f.EXPECT().Config().Return(&mocks.SimpleConfig{
110121
AllowNameForID: true,
@@ -259,6 +270,7 @@ func TestNewCmdIn_ShouldLookupProject_WithAndWithoutClient(t *testing.T) {
259270

260271
f.EXPECT().GetUserID().Return("u", nil)
261272
f.EXPECT().GetWorkspaceID().Return(w.ID, nil)
273+
f.EXPECT().TimeEntryDefaults().Return(newTEDNotFound(t))
262274

263275
f.EXPECT().Config().Return(&mocks.SimpleConfig{
264276
AllowNameForID: true,
@@ -364,6 +376,10 @@ func TestNewCmdIn_ShouldUseDefaults(t *testing.T) {
364376
c.EXPECT().CreateTimeEntry(exp).
365377
Return(dto.TimeEntryImpl{ID: "te"}, nil)
366378

379+
ted := mocks.NewMockTimeEntryDefaults(t)
380+
f.EXPECT().TimeEntryDefaults().Return(ted)
381+
ted.EXPECT().Read().Return(d, nil)
382+
367383
called := false
368384
cmd := in.NewCmdIn(f, func(
369385
_ dto.TimeEntryImpl, _ io.Writer, _ util.OutputFlags) error {
@@ -390,11 +406,37 @@ func TestNewCmdIn_ShouldUseDefaults(t *testing.T) {
390406
}
391407

392408
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+
},
394416
[]string{},
395417
api.CreateTimeEntryParam{
396418
Workspace: w.ID,
397419
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"},
398440
},
399441
)
400442
}

0 commit comments

Comments
 (0)