test: some work on integration tests (fake)

This commit is contained in:
James Houlahan
2020-04-09 13:49:07 +02:00
parent fec5f2d3c3
commit ed8595fa5b
6 changed files with 25 additions and 15 deletions

View File

@ -29,7 +29,7 @@ test-stage:
TEST_ENV=live go test -tags=$(TAGS) -- $(FEATURES)
test-debug:
TEST_ENV=fake dlv test -- $(FEATURES)
TEST_ENV=fake TEST_ACCOUNTS=accounts/fake.json dlv test -- $(FEATURES)
test-live-debug:
TEST_ENV=live dlv test -- $(FEATURES)

View File

@ -65,9 +65,12 @@ func (api *FakePMAPI) Auth(username, password string, authInfo *pmapi.AuthInfo)
auth := &pmapi.Auth{
TwoFA: user.get2FAInfo(),
RefreshToken: session.refreshToken,
ExpiresIn: 86400,
}
auth.DANGEROUSLYSetUID(session.uid)
api.sendAuth(auth)
return auth, nil
}
@ -135,7 +138,10 @@ func (api *FakePMAPI) AuthRefresh(token string) (*pmapi.Auth, error) {
auth := &pmapi.Auth{
RefreshToken: session.refreshToken,
ExpiresIn: 86400,
}
auth.DANGEROUSLYSetUID(session.uid)
api.sendAuth(auth)
return auth, nil

View File

@ -32,6 +32,7 @@ type Controller struct {
labelIDGenerator idGenerator
messageIDGenerator idGenerator
tokenGenerator idGenerator
clientManager *pmapi.ClientManager
// State controlled by test.
noInternetConnection bool
@ -52,6 +53,7 @@ func NewController(cm *pmapi.ClientManager) *Controller {
labelIDGenerator: 100, // We cannot use system label IDs.
messageIDGenerator: 0,
tokenGenerator: 1000, // No specific reason; 1000 simply feels right.
clientManager: cm,
noInternetConnection: false,
usersByUsername: map[string]*fakeUser{},

View File

@ -103,14 +103,13 @@ func (api *FakePMAPI) checkInternetAndRecordCall(method method, path string, req
return nil
}
// TODO: This should be sent back to the ClientManager properly!
func (api *FakePMAPI) sendAuth(auth *pmapi.Auth) {
if auth != nil {
auth.DANGEROUSLYSetUID(api.uid)
}
if api.auths != nil {
api.auths <- auth
}
go func() {
api.controller.clientManager.GetClientAuthChannel() <- pmapi.ClientAuth{
UserID: api.user.ID,
Auth: auth,
}
}()
}
func (api *FakePMAPI) setUser(username string) error {