mirror of https://github.com/dexidp/dex.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
1.5 KiB
67 lines
1.5 KiB
package server |
|
|
|
import ( |
|
"context" |
|
"os" |
|
"testing" |
|
|
|
"github.com/Sirupsen/logrus" |
|
"github.com/coreos/dex/api" |
|
"github.com/coreos/dex/storage/memory" |
|
) |
|
|
|
// Attempts to create, update and delete a test Password |
|
func TestPassword(t *testing.T) { |
|
logger := &logrus.Logger{ |
|
Out: os.Stderr, |
|
Formatter: &logrus.TextFormatter{DisableColors: true}, |
|
Level: logrus.DebugLevel, |
|
} |
|
|
|
s := memory.New(logger) |
|
serv := NewAPI(s, logger) |
|
|
|
ctx := context.Background() |
|
p := api.Password{ |
|
Email: "test@example.com", |
|
// bcrypt hash of the value "test1" with cost 10 |
|
Hash: []byte("$2a$10$XVMN/Fid.Ks4CXgzo8fpR.iU1khOMsP5g9xQeXuBm1wXjRX8pjUtO"), |
|
Username: "test", |
|
UserId: "test123", |
|
} |
|
|
|
createReq := api.CreatePasswordReq{ |
|
Password: &p, |
|
} |
|
|
|
if _, err := serv.CreatePassword(ctx, &createReq); err != nil { |
|
t.Fatalf("Unable to create password: %v", err) |
|
} |
|
|
|
updateReq := api.UpdatePasswordReq{ |
|
Email: "test@example.com", |
|
NewUsername: "test1", |
|
} |
|
|
|
if _, err := serv.UpdatePassword(ctx, &updateReq); err != nil { |
|
t.Fatalf("Unable to update password: %v", err) |
|
} |
|
|
|
pass, err := s.GetPassword(updateReq.Email) |
|
if err != nil { |
|
t.Fatalf("Unable to retrieve password: %v", err) |
|
} |
|
|
|
if pass.Username != updateReq.NewUsername { |
|
t.Fatalf("UpdatePassword failed. Expected username %s retrieved %s", updateReq.NewUsername, pass.Username) |
|
} |
|
|
|
deleteReq := api.DeletePasswordReq{ |
|
Email: "test@example.com", |
|
} |
|
|
|
if _, err := serv.DeletePassword(ctx, &deleteReq); err != nil { |
|
t.Fatalf("Unable to delete password: %v", err) |
|
} |
|
|
|
}
|
|
|