Add support for select
This commit is contained in:
parent
61a7dbbe03
commit
1771eeb338
3 changed files with 131 additions and 89 deletions
|
@ -24,6 +24,10 @@ var testData = []*Person{
|
|||
Surname: "Bar",
|
||||
Age: 57,
|
||||
BirthDate: time.Date(1960, 1, 1, 0, 0, 0, 0, time.UTC),
|
||||
Animal: "Dog",
|
||||
Checklist: []string{
|
||||
"Milk",
|
||||
},
|
||||
},
|
||||
nil,
|
||||
&Person{
|
||||
|
@ -32,22 +36,26 @@ var testData = []*Person{
|
|||
Age: 22,
|
||||
BirthDate: time.Date(1995, 1, 5, 0, 0, 0, 0, time.UTC),
|
||||
Languages: []Language{
|
||||
Language{
|
||||
{
|
||||
Language: "Dutch",
|
||||
SkillLevel: 9.99,
|
||||
Native: true,
|
||||
},
|
||||
Language{
|
||||
{
|
||||
Language: "English",
|
||||
SkillLevel: 8.4,
|
||||
Native: false,
|
||||
},
|
||||
Language{
|
||||
{
|
||||
Language: "Japanese",
|
||||
SkillLevel: -9000.9,
|
||||
Native: false,
|
||||
},
|
||||
},
|
||||
Animal: "Dog",
|
||||
Checklist: []string{
|
||||
"Milk",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
|
@ -84,9 +92,11 @@ type Person struct {
|
|||
Age int `json:"age"`
|
||||
BirthDate time.Time `json:"birth_date"`
|
||||
Languages []Language `json:"languages"`
|
||||
Checklist []string `json:"checklist"`
|
||||
Animal string `json:"animal"`
|
||||
}
|
||||
|
||||
// Languages ...
|
||||
// Language ...
|
||||
type Language struct {
|
||||
Language string `json:"language"`
|
||||
SkillLevel float64 `json:"skill_level"`
|
||||
|
@ -129,14 +139,21 @@ func isEq(p1, p2 Person) {
|
|||
assert(p1.Surname, p2.Surname, "Surname")
|
||||
assert(p1.Age, p2.Age, "Age")
|
||||
assert(p1.BirthDate, p2.BirthDate, "BirthDate")
|
||||
assert(p1.Animal, p2.Animal, "Animal")
|
||||
if !assert(len(p2.Languages), len(p1.Languages), "Languages length") {
|
||||
return
|
||||
}
|
||||
if !assert(len(p2.Checklist), len(p1.Checklist), "Checklist length") {
|
||||
return
|
||||
}
|
||||
for k := range p2.Languages {
|
||||
assert(p1.Languages[k].Language, p2.Languages[k].Language, "Languages.Language")
|
||||
assert(p1.Languages[k].SkillLevel, p2.Languages[k].SkillLevel, "Languages.SkillLevel")
|
||||
assert(p1.Languages[k].Native, p2.Languages[k].Native, "Languages.Native")
|
||||
}
|
||||
for k := range p2.Checklist {
|
||||
assert(p1.Checklist[k], p2.Checklist[k], "Checklist")
|
||||
}
|
||||
}
|
||||
|
||||
func assert(v, v2 interface{}, ident string) bool {
|
||||
|
|
|
@ -32,6 +32,14 @@
|
|||
<input name="skill_level" type="number" value="{{ .SkillLevel }}">
|
||||
</group>
|
||||
{{ end }}
|
||||
<select multiple name="checklist">
|
||||
<option selected value="Milk">Milk</option>
|
||||
<option value="Eggs">Eggs</option>
|
||||
</select>
|
||||
<select name="animal">
|
||||
<option value="Dog" selected>Dog</option>
|
||||
<option value="Cat">Cat</option>
|
||||
</select>
|
||||
</group>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue