feat(07-03): add avatars, mail templates, and password-change command
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
54
console_test.go
Normal file
54
console_test.go
Normal file
@@ -0,0 +1,54 @@
|
||||
package user
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"git.golem15.com/golem15/fonoteka/plugins/golem15/user/models"
|
||||
"git.golem15.com/golem15/summercms/bonfire"
|
||||
"git.golem15.com/golem15/summercms/pact"
|
||||
)
|
||||
|
||||
func TestRequirePasswordChange(t *testing.T) {
|
||||
app, gdb := sessionApp(t, "0s")
|
||||
user := insertUser(t, gdb, "alice@example.com", "correct-horse")
|
||||
p := &Plugin{app: app}
|
||||
var _ pact.HasCommands = p
|
||||
cmds := p.Commands()
|
||||
if len(cmds) != 1 || cmds[0].Name != "user:require-password-change" {
|
||||
t.Fatalf("commands = %#v", cmds)
|
||||
}
|
||||
var buf bytes.Buffer
|
||||
out := bonfire.NewOutput(nil, &buf, &buf)
|
||||
if err := cmds[0].Run(context.Background(), emailArg{email: "alice@example.com"}, out); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if !strings.Contains(buf.String(), "alice@example.com") {
|
||||
t.Fatalf("output = %q", buf.String())
|
||||
}
|
||||
var fresh models.User
|
||||
if err := gdb.First(&fresh, user.ID).Error; err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if !fresh.MustChangePassword {
|
||||
t.Fatal("must_change_password stayed false")
|
||||
}
|
||||
if err := cmds[0].Run(context.Background(), emailArg{email: "missing@example.com"}, out); err == nil {
|
||||
t.Fatal("unknown email returned nil error")
|
||||
}
|
||||
}
|
||||
|
||||
type emailArg struct{ email string }
|
||||
|
||||
func (e emailArg) Args() []string { return []string{e.email} }
|
||||
|
||||
func (e emailArg) Argument(name string) (string, bool) {
|
||||
if name == "email" {
|
||||
return e.email, true
|
||||
}
|
||||
return "", false
|
||||
}
|
||||
|
||||
func (e emailArg) Flag(string) (string, bool) { return "", false }
|
||||
Reference in New Issue
Block a user