@haechi-labs/henesis-cli
Version:
🚀 Command Line Interface tool to Utilize henesis
88 lines • 3.55 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const test_1 = require("@oclif/test");
const wretch_1 = tslib_1.__importDefault(require("wretch"));
const url_1 = require("./url");
const mockhttp = tslib_1.__importStar(require("mockttp"));
const user_1 = require("./user");
const mock_1 = require("../mock");
wretch_1.default().polyfills({
fetch: require('node-fetch'),
FormData: require('form-data'),
URLSearchParams: require('url').URLSearchParams,
});
process.env.HENESIS_TEST = 'true';
describe('UserRpc', () => {
const mockServer = mockhttp.getLocal();
let userRpc;
beforeEach(async () => {
const url = url_1.baseUrl();
userRpc = new user_1.UserRpc(url, url_1.rpcVersion);
await mockServer.start(8080);
});
afterEach(async () => {
await mockServer.stop();
});
describe('#login()', () => {
it('should be failed when Nonexistent User Info.', async () => {
await mockServer
.post('/users/v1/login')
.thenJson(403, { error: { message: 'login failed' } });
try {
await userRpc.login('asdf', 'password');
}
catch (err) {
test_1.expect(err.toString()).to.equal('Error: login failed');
}
});
it('success Login Process.', async () => {
const loginData = mock_1.newMockLogin();
await mockServer.post('/users/v1/login').thenJSON(200, loginData);
const response = await userRpc.login(loginData.email, 'password');
test_1.expect(response).to.deep.equal(loginData);
});
});
describe('#changePassword()', () => {
it('should be failed when different exist password.', async () => {
await mockServer.patch('/users/v1/passwd').thenJson(403, {});
try {
await userRpc.changePassword('existing password', 'To be changed password');
}
catch (err) {
test_1.expect(err.toString()).to.equal('Error: failed to change password');
}
});
it('should be failed when jwt Token is expire.', async () => {
await mockServer.patch('/users/v1/passwd').thenJson(401, {
error: { message: 'expired token (please log in again)' },
});
try {
await userRpc.changePassword('existing password', 'To be changed password');
}
catch (err) {
test_1.expect(err.toString()).to.equal('Error: expired token (please log in again)');
}
});
});
describe('#describeAccount()', () => {
it('should be failed when jwt Token is expire.', async () => {
await mockServer.get('/users/v1/me').thenJson(401, {
error: { message: 'expired token (please log in again)' },
});
try {
await userRpc.describe();
}
catch (err) {
test_1.expect(err.toString()).to.equal('Error: expired token (please log in again)');
}
});
it('success describe account.', async () => {
const accountData = mock_1.newMockAccount();
await mockServer.get('/users/v1/me').thenJson(200, accountData);
const response = await userRpc.describe();
test_1.expect(response).to.deep.equal(accountData);
});
});
});
//# sourceMappingURL=user.spec.js.map