@@ -147,6 +147,86 @@ func TestDailyNote(t *testing.T) {
147147 assert .Equal (t , uri .ExecuteErr , err )
148148 })
149149
150+ t .Run ("Creates daily note with content" , func (t * testing.T ) {
151+ tmpDir := t .TempDir ()
152+ vault := mocks.MockVaultOperator {Name : "myVault" , PathValue : tmpDir }
153+ uri := mocks.MockUriManager {}
154+
155+ err := actions .DailyNote (& vault , & uri , actions.DailyParams {
156+ Content : "hello world" ,
157+ })
158+ assert .NoError (t , err )
159+
160+ data , _ := os .ReadFile (filepath .Join (tmpDir , today + ".md" ))
161+ assert .Equal (t , "hello world" , string (data ))
162+ })
163+
164+ t .Run ("Creates daily note with template and content" , func (t * testing.T ) {
165+ tmpDir := t .TempDir ()
166+ obsDir := filepath .Join (tmpDir , ".obsidian" )
167+ if err := os .MkdirAll (obsDir , 0755 ); err != nil {
168+ t .Fatal (err )
169+ }
170+ if err := os .WriteFile (filepath .Join (obsDir , "daily-notes.json" ), []byte (`{
171+ "template": "Templates/Daily"
172+ }` ), 0644 ); err != nil {
173+ t .Fatal (err )
174+ }
175+ if err := os .MkdirAll (filepath .Join (tmpDir , "Templates" ), 0755 ); err != nil {
176+ t .Fatal (err )
177+ }
178+ if err := os .WriteFile (filepath .Join (tmpDir , "Templates" , "Daily.md" ), []byte ("# Daily Note\n " ), 0644 ); err != nil {
179+ t .Fatal (err )
180+ }
181+
182+ vault := mocks.MockVaultOperator {Name : "myVault" , PathValue : tmpDir }
183+ uri := mocks.MockUriManager {}
184+
185+ err := actions .DailyNote (& vault , & uri , actions.DailyParams {
186+ Content : "- task 1" ,
187+ })
188+ assert .NoError (t , err )
189+
190+ data , _ := os .ReadFile (filepath .Join (tmpDir , today + ".md" ))
191+ assert .Equal (t , "# Daily Note\n - task 1" , string (data ))
192+ })
193+
194+ t .Run ("Appends content to existing daily note" , func (t * testing.T ) {
195+ tmpDir := t .TempDir ()
196+ notePath := filepath .Join (tmpDir , today + ".md" )
197+ if err := os .WriteFile (notePath , []byte ("existing content" ), 0644 ); err != nil {
198+ t .Fatal (err )
199+ }
200+
201+ vault := mocks.MockVaultOperator {Name : "myVault" , PathValue : tmpDir }
202+ uri := mocks.MockUriManager {}
203+
204+ err := actions .DailyNote (& vault , & uri , actions.DailyParams {
205+ Content : "\\ nnew line" ,
206+ })
207+ assert .NoError (t , err )
208+
209+ data , _ := os .ReadFile (notePath )
210+ assert .Equal (t , "existing content\n new line" , string (data ))
211+ })
212+
213+ t .Run ("Does not modify existing daily note without content" , func (t * testing.T ) {
214+ tmpDir := t .TempDir ()
215+ notePath := filepath .Join (tmpDir , today + ".md" )
216+ if err := os .WriteFile (notePath , []byte ("existing content" ), 0644 ); err != nil {
217+ t .Fatal (err )
218+ }
219+
220+ vault := mocks.MockVaultOperator {Name : "myVault" , PathValue : tmpDir }
221+ uri := mocks.MockUriManager {}
222+
223+ err := actions .DailyNote (& vault , & uri , actions.DailyParams {})
224+ assert .NoError (t , err )
225+
226+ data , _ := os .ReadFile (notePath )
227+ assert .Equal (t , "existing content" , string (data ))
228+ })
229+
150230 t .Run ("Creates daily note with custom format" , func (t * testing.T ) {
151231 tmpDir := t .TempDir ()
152232 obsDir := filepath .Join (tmpDir , ".obsidian" )
0 commit comments