@mytmpvpn/mytmpvpn-client
Version:
MyTmpVpn Client Library
62 lines (61 loc) • 1.97 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AuthMock = void 0;
const logging_1 = require("../logging");
const errors_1 = require("@mytmpvpn/mytmpvpn-common/errors");
const client_1 = require("./client");
class AuthMock {
constructor(username = 'mockUser', registered = false) {
this.username = username;
this.registered = registered;
this.mockUser = null;
this.mockSession = null;
this.mockClient = new client_1.MyTmpVpnClientMock();
}
async authenticate() {
if (!this.registered) {
throw new errors_1.MyTmpVpnError('User does not exist.');
}
this.mockUser = {
getUsername: () => this.username,
deleteUser: (callback) => callback(undefined, 'SUCCESS')
};
this.mockSession = {
getIdToken: () => ({ getJwtToken: () => 'mock-token' }),
isValid: () => true,
};
this.mockClient.setUserSession(this.mockUser, this.mockSession);
logging_1.logger.debug(`Returning authenticated user`, this.mockClient);
return this.mockClient;
}
async register() {
if (this.registered) {
throw new errors_1.MyTmpVpnError('User already exists');
}
this.mockUser = {
getUsername: () => this.username,
};
this.registered = true;
return this.mockUser;
}
async confirmRegistration(code) {
if (!this.registered) {
throw new errors_1.MyTmpVpnError('User not found');
}
if (code !== 'valid-code') {
throw new errors_1.MyTmpVpnError('Invalid verification code');
}
return 'SUCCESS';
}
getUser() {
return this.mockUser;
}
getSession() {
return this.mockSession;
}
// Helper methods for testing
getMockClient() {
return this.mockClient;
}
}
exports.AuthMock = AuthMock;