✨ Add JSON formatter
This commit is contained in:
		
					parent
					
						
							
								d1b3604e1e
							
						
					
				
			
			
				commit
				
					
						4c0edcd1a5
					
				
			
		
					 4 changed files with 132 additions and 1 deletions
				
			
		
							
								
								
									
										67
									
								
								formatters/json_test.go
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								formatters/json_test.go
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,67 @@ | |||
| package formatters | ||||
| 
 | ||||
| import ( | ||||
| 	//"bufio" | ||||
| 	//"bytes" | ||||
| 	"fmt" | ||||
| 	"testing" | ||||
| 	"time" | ||||
| 
 | ||||
| 	"codeberg.org/danjones000/my-log/models" | ||||
| 	//"codeberg.org/danjones000/my-log/tools" | ||||
| 	"github.com/stretchr/testify/assert" | ||||
| 	//"github.com/stretchr/testify/require" | ||||
| ) | ||||
| 
 | ||||
| func TestJsonName(t *testing.T) { | ||||
| 	f, _ := New("json") | ||||
| 	assert.Equal(t, "json", f.Name()) | ||||
| } | ||||
| 
 | ||||
| func TestJsonMeta(t *testing.T) { | ||||
| 	f, _ := New("json") | ||||
| 	m := models.Meta{"foo", 42} | ||||
| 	exp := `{"foo":42}` | ||||
| 	o, err := f.Meta(m) | ||||
| 	assert.NoError(t, err) | ||||
| 	assert.JSONEq(t, exp, string(o)) | ||||
| } | ||||
| 
 | ||||
| func TestJsonEntry(t *testing.T) { | ||||
| 	when := time.Now() | ||||
| 	f, _ := New("json") | ||||
| 	m := models.Meta{"foo", 42} | ||||
| 	e := models.Entry{ | ||||
| 		Title:  "Homer", | ||||
| 		Date:   when, | ||||
| 		Fields: []models.Meta{m}, | ||||
| 	} | ||||
| 	exp := fmt.Sprintf(`{"title":"%s","date":"%s","foo":42}`, e.Title, when.Format(time.RFC3339)) | ||||
| 	o, err := f.Entry(e) | ||||
| 	assert.NoError(t, err) | ||||
| 	assert.JSONEq(t, exp, string(o)) | ||||
| } | ||||
| 
 | ||||
| func TestJsonLog(t *testing.T) { | ||||
| 	when := time.Now() | ||||
| 	f, _ := New("json") | ||||
| 	m := models.Meta{"foo", 42} | ||||
| 	e := models.Entry{ | ||||
| 		Title:  "Homer", | ||||
| 		Date:   when, | ||||
| 		Fields: []models.Meta{m}, | ||||
| 	} | ||||
| 	l := models.Log{"stuff", []models.Entry{e}} | ||||
| 	exp := fmt.Sprintf(`{"%s":[{"title":"%s","date":"%s","foo":42}]}`, l.Name, e.Title, when.Format(time.RFC3339)) | ||||
| 	o, err := f.Log(l) | ||||
| 	assert.NoError(t, err) | ||||
| 	assert.JSONEq(t, exp, string(o)) | ||||
| } | ||||
| 
 | ||||
| func TestJsonNoLogs(t *testing.T) { | ||||
| 	f, _ := New("json") | ||||
| 	o, err := f.Logs([]models.Log{}) | ||||
| 	var exp []byte | ||||
| 	assert.NoError(t, err) | ||||
| 	assert.Equal(t, exp, o) | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue