2024-06-09 18:39:04 -07:00
|
|
|
package form
|
2021-12-24 21:11:59 -08:00
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
|
2024-06-09 18:39:04 -07:00
|
|
|
"github.com/labstack/echo/v4"
|
|
|
|
"github.com/mikestefanello/pagoda/pkg/services"
|
2022-11-02 16:23:26 -07:00
|
|
|
"github.com/mikestefanello/pagoda/pkg/tests"
|
2021-12-24 21:11:59 -08:00
|
|
|
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestFormSubmission(t *testing.T) {
|
|
|
|
type formTest struct {
|
|
|
|
Name string `validate:"required"`
|
|
|
|
Email string `validate:"required,email"`
|
2024-06-09 18:39:04 -07:00
|
|
|
Submission Submission
|
2021-12-24 21:11:59 -08:00
|
|
|
}
|
|
|
|
|
2024-06-09 18:39:04 -07:00
|
|
|
e := echo.New()
|
|
|
|
e.Validator = services.NewValidator()
|
|
|
|
ctx, _ := tests.NewContext(e, "/")
|
2021-12-24 21:11:59 -08:00
|
|
|
form := formTest{
|
|
|
|
Name: "",
|
|
|
|
Email: "a@a.com",
|
|
|
|
}
|
|
|
|
err := form.Submission.Process(ctx, form)
|
2024-06-09 18:39:04 -07:00
|
|
|
require.NoError(t, err)
|
2021-12-24 21:11:59 -08:00
|
|
|
|
|
|
|
assert.True(t, form.Submission.HasErrors())
|
|
|
|
assert.True(t, form.Submission.FieldHasErrors("Name"))
|
|
|
|
assert.False(t, form.Submission.FieldHasErrors("Email"))
|
|
|
|
require.Len(t, form.Submission.GetFieldErrors("Name"), 1)
|
|
|
|
assert.Len(t, form.Submission.GetFieldErrors("Email"), 0)
|
|
|
|
assert.Equal(t, "This field is required.", form.Submission.GetFieldErrors("Name")[0])
|
|
|
|
assert.Equal(t, "is-danger", form.Submission.GetFieldStatusClass("Name"))
|
|
|
|
assert.Equal(t, "is-success", form.Submission.GetFieldStatusClass("Email"))
|
|
|
|
assert.False(t, form.Submission.IsDone())
|
|
|
|
}
|