Files
magpie/internal/qoder/models_test.go
T

30 lines
935 B
Go

package qoder
import "testing"
// The listing marks a model free with is_free or a price_factor of 0, in
// snake or camel case; Qoder's client shows either as free.
func TestParseModelsFree(t *testing.T) {
body := []byte(`{"chat":[
{"key":"flag","enable":true,"is_free":true,"price_factor":1},
{"key":"camel-flag","enable":true,"isFree":true},
{"key":"zero","enable":true,"price_factor":0},
{"key":"camel-zero","enable":true,"priceFactor":0},
{"key":"paid","enable":true,"is_free":false,"price_factor":0.5},
{"key":"unsaid","enable":true}
]}`)
ms, err := ParseModels(body)
if err != nil {
t.Fatal(err)
}
want := map[string]bool{"flag": true, "camel-flag": true, "zero": true, "camel-zero": true, "paid": false, "unsaid": false}
if len(ms) != len(want) {
t.Fatalf("models %+v", ms)
}
for _, m := range ms {
if m.Free != want[m.ID] {
t.Errorf("%s: Free = %v, want %v", m.ID, m.Free, want[m.ID])
}
}
}