Only add newline to file when needed

This commit is contained in:
Dan Jones 2024-03-09 15:38:34 -06:00
commit 5b8e4696ea
4 changed files with 82 additions and 5 deletions

View file

@ -33,6 +33,7 @@ func (s *AppendTestSuite) TearDownSuite() {
}
func (s *AppendTestSuite) TestSuccess() {
defer os.Remove(s.dir + "/test.log")
when := time.Now().Local()
e := models.Entry{
Title: "Jimmy",
@ -57,7 +58,68 @@ func (s *AppendTestSuite) TestSuccess() {
s.Assert().Contains(st, "\n@bar true")
}
func (s *AppendTestSuite) TestTwoEntries() {
defer os.Remove(s.dir + "/test.log")
when := time.Now().Local()
whens := when.Format(models.DateFormat)
e := []models.Entry{
{Title: "one", Date: when},
{Title: "two", Date: when},
}
l := models.Log{
Name: "test",
Entries: e,
}
err := Append(l)
s.Assert().NoError(err)
s.Require().FileExists(s.dir + "/test.log")
by, _ := os.ReadFile(s.dir + "/test.log")
exp := fmt.Sprintf("@begin %s - one @end\n@begin %s - two @end\n", whens, whens)
s.Assert().Equal(exp, string(by))
}
func (s *AppendTestSuite) TestAddNewLine() {
defer os.Remove(s.dir + "/test.log")
os.WriteFile(s.dir+"/test.log", []byte("foo"), 0644)
when := time.Now().Local()
whens := when.Format(models.DateFormat)
e := []models.Entry{
{Title: "one", Date: when},
}
l := models.Log{
Name: "test",
Entries: e,
}
err := Append(l)
s.Assert().NoError(err)
s.Require().FileExists(s.dir + "/test.log")
by, _ := os.ReadFile(s.dir + "/test.log")
exp := fmt.Sprintf("foo\n@begin %s - one @end\n", whens)
s.Assert().Equal(exp, string(by))
}
func (s *AppendTestSuite) TestDontAddNewLine() {
defer os.Remove(s.dir + "/test.log")
os.WriteFile(s.dir+"/test.log", []byte("foo\n"), 0644)
when := time.Now().Local()
whens := when.Format(models.DateFormat)
e := []models.Entry{
{Title: "one", Date: when},
}
l := models.Log{
Name: "test",
Entries: e,
}
err := Append(l)
s.Assert().NoError(err)
s.Require().FileExists(s.dir + "/test.log")
by, _ := os.ReadFile(s.dir + "/test.log")
exp := fmt.Sprintf("foo\n@begin %s - one @end\n", whens)
s.Assert().Equal(exp, string(by))
}
func (s *AppendTestSuite) TestFailEntry() {
defer os.Remove(s.dir + "/test.log")
e := models.Entry{
Title: "Jimmy",
}