@sprucelabs/spruce-cli
Version:
Command line interface for building Spruce skills.
57 lines • 2.17 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.DEMO_NUMBER = void 0;
const schema_1 = require("@sprucelabs/schema");
const spruce_event_utils_1 = require("@sprucelabs/spruce-event-utils");
const dotenv_1 = __importDefault(require("dotenv"));
dotenv_1.default.config({ quiet: true });
exports.DEMO_NUMBER = process.env.DEMO_NUMBER;
class PersonFixture {
connectToApi;
constructor(apiClientFactory) {
this.connectToApi = apiClientFactory;
}
async loginAsDemoPerson(phone) {
const client = await this.connectToApi();
//@ts-ignore
if (!phone && client.auth?.person) {
//@ts-ignore
return client.auth.person;
}
phone = phone || exports.DEMO_NUMBER;
if (!phone) {
throw new schema_1.SchemaError({
code: 'MISSING_PARAMETERS',
parameters: ['env.DEMO_NUMBER'],
});
}
//@ts-ignore
if (client.auth?.person?.phone === phone) {
//@ts-ignore
return client.auth.person;
}
const requestPinResults = await client.emit('request-pin::v2020_12_25', {
payload: { phone },
});
const { challenge } = spruce_event_utils_1.eventResponseUtil.getFirstResponseOrThrow(requestPinResults);
const confirmPinResults = await client.emit('confirm-pin::v2020_12_25', {
payload: { challenge, pin: phone.substr(-4) },
});
const { person, token } = spruce_event_utils_1.eventResponseUtil.getFirstResponseOrThrow(confirmPinResults);
const personWithToken = { ...person, token };
//@ts-ignore
client.auth = { person: personWithToken };
return personWithToken;
}
async logout() {
const client = await this.connectToApi();
await client.emit('logout::v2020_12_25');
//@ts-ignore
delete client.auth;
}
}
exports.default = PersonFixture;
//# sourceMappingURL=PersonFixture.js.map