tsk-19: Service login (#23)
Closes #19 Reviewed-on: phoenix/textsender-auth#23 Co-authored-by: phoenix <kundeng00@pm.me> Co-committed-by: phoenix <kundeng00@pm.me>
This commit is contained in:
@@ -7,10 +7,12 @@ import (
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"git.kundeng.us/phoenix/textsender-models/pkg/user"
|
||||
"github.com/stretchr/testify/assert"
|
||||
|
||||
"git.kundeng.us/phoenix/textsender-auth/internal/handler/endpoint"
|
||||
"git.kundeng.us/phoenix/textsender-auth/internal/store/mock"
|
||||
"git.kundeng.us/phoenix/textsender-auth/internal/utility"
|
||||
)
|
||||
|
||||
func TestCreateServiceUserWithMock(t *testing.T) {
|
||||
@@ -31,3 +33,38 @@ func TestCreateServiceUserWithMock(t *testing.T) {
|
||||
err = json.Unmarshal(rr.Body.Bytes(), &response)
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestLoginServiceUserWithMock(t *testing.T) {
|
||||
var serviceUser user.ServiceUser
|
||||
var hashedPassword string
|
||||
var err error
|
||||
unhashed := "9328nr29nudx3292m320!"
|
||||
hashing := utility.HashMash{Password: unhashed}
|
||||
if hashedPassword, err = hashing.HashPassword(); err != nil {
|
||||
assert.NoError(t, err, "Error hashing password: %v", err)
|
||||
} else {
|
||||
serviceUser.Passphrase = hashedPassword
|
||||
}
|
||||
serviceUser.Username = "swoon"
|
||||
ctx := t.Context()
|
||||
mockStore := mock.NewMockServiceUserStore()
|
||||
|
||||
if err := mockStore.Create(ctx, &serviceUser); err != nil {
|
||||
assert.NoError(t, err, "Error creating service user: %v", err)
|
||||
}
|
||||
|
||||
handler := NewServiceHandler(mockStore)
|
||||
testService := ServiceLoginRequest{Username: serviceUser.Username, Passphrase: unhashed}
|
||||
jsonValue, err := json.Marshal(testService)
|
||||
assert.NoError(t, err, "Error marshaling request")
|
||||
|
||||
req, _ := http.NewRequest("POST", endpoint.LoginServiceUser, strings.NewReader(string(jsonValue)))
|
||||
rr := httptest.NewRecorder()
|
||||
|
||||
handler.Login(rr, req)
|
||||
assert.Equal(t, http.StatusOK, rr.Code)
|
||||
|
||||
var response ServiceLoginResponse
|
||||
err = json.Unmarshal(rr.Body.Bytes(), &response)
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user