-
Notifications
You must be signed in to change notification settings - Fork 76
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add create record command #118
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me! I just requested that tiny cobra.ExactArgs
change.
|
||
// RecordCollides checks if the time of a record collides | ||
// with other records of the same day and returns a bool | ||
func (t *Timetrace) RecordCollides(toCheck Record) (bool, error) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Glad that we finally have this function. It should be tested though - you can do it yourself if you want to, otherwise I'll write the test.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hm, I am not quite sure how to write the test for it. I would be glad to hear your approach - mocking the fs, or just creating a full core in the test? The easiest idea that came to my mind would be refactoring the part of the code that actually checks for collision to another method and just test this one. In this case, no mocking or fiddling with the core would be needed, right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, you could just move the collision logic in a function that accepts Record
instances and test that function. The loading of the records will be tested separately.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Okay, I just did that and added the tests for it. I think all possible scenarios are tested, but if I missed some it should be easy to add more :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thanks for implementing this! 👍
closes #97
I added the create record command. I also added checks that return an error if the end time is before the start time or the record collides with other records of the same day.