mirror of
https://github.com/Dvorinka/Devour.git
synced 2026-06-03 20:13:03 +00:00
update
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
package cmd
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestLanguagesJSONFormat(t *testing.T) {
|
||||
prev := languagesFormat
|
||||
defer func() { languagesFormat = prev }()
|
||||
languagesFormat = "json"
|
||||
|
||||
var buf bytes.Buffer
|
||||
languagesCmd.SetOut(&buf)
|
||||
|
||||
if err := runLanguages(languagesCmd, nil); err != nil {
|
||||
t.Fatalf("runLanguages returned error: %v", err)
|
||||
}
|
||||
|
||||
var payload struct {
|
||||
Count int `json:"count"`
|
||||
Languages []struct {
|
||||
Canonical string `json:"canonical"`
|
||||
Aliases []string `json:"aliases"`
|
||||
} `json:"languages"`
|
||||
}
|
||||
if err := json.Unmarshal(buf.Bytes(), &payload); err != nil {
|
||||
t.Fatalf("invalid json output: %v", err)
|
||||
}
|
||||
if payload.Count == 0 || len(payload.Languages) == 0 {
|
||||
t.Fatalf("expected non-empty languages payload, got %+v", payload)
|
||||
}
|
||||
|
||||
foundNext := false
|
||||
for _, l := range payload.Languages {
|
||||
if l.Canonical == "nextjs" {
|
||||
foundNext = true
|
||||
break
|
||||
}
|
||||
}
|
||||
if !foundNext {
|
||||
t.Fatalf("expected nextjs in JSON payload, got %+v", payload.Languages)
|
||||
}
|
||||
}
|
||||
|
||||
func TestLanguagesTextFormat(t *testing.T) {
|
||||
prev := languagesFormat
|
||||
defer func() { languagesFormat = prev }()
|
||||
languagesFormat = "text"
|
||||
|
||||
var buf bytes.Buffer
|
||||
languagesCmd.SetOut(&buf)
|
||||
|
||||
if err := runLanguages(languagesCmd, nil); err != nil {
|
||||
t.Fatalf("runLanguages returned error: %v", err)
|
||||
}
|
||||
out := buf.String()
|
||||
if !strings.Contains(out, "Devour Supported Languages") {
|
||||
t.Fatalf("unexpected text output: %q", out)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user