Repository URL to install this package:
|
Version:
9.0.35-framework ▾
|
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const apollo_server_1 = require("apollo-server");
const testHelpers_1 = require("../../../deps/testHelpers");
const generator_1 = require("../../__tests__/generator");
const index_1 = require("../index");
function toTest() {
const testies = testHelpers_1.toGraphqlModuleTest(index_1.UserModule());
return Object.assign({}, testies, toUserHelpers(testies));
}
exports.toTest = toTest;
// @todo memoize?
// @todo add option to create new user?s
async function toUserHelpersAuto() {
const testHelpers = testHelpers_1.toGraphqlModuleTest(index_1.UserModule());
const userHelpers = toUserHelpers(testHelpers);
const { user, registerUserResponse } = await userHelpers.registerIfNeeded();
return Object.assign({}, testHelpers, userHelpers, { user,
registerUserResponse });
}
exports.toUserHelpersAuto = toUserHelpersAuto;
exports.REGISTER_USER = apollo_server_1.gql `
mutation RegisterUser($input: RegisterUserInput!) {
registerUser(input: $input) {
sessionId
responseCode
type
properties {
state {
status
}
userinfo {
userId
}
}
cookies
}
}
`;
exports.REGISTER_GUEST = apollo_server_1.gql `
mutation RegisterGuest {
registerGuest {
sessionId
responseCode
properties {
state {
statuscode
starttime
status
}
}
cookies
}
}
`;
exports.LOGIN_USER = apollo_server_1.gql `
mutation LoginUser($input: UserLoginInput!) {
login(input: $input) {
sessionId
responseCode
properties {
state {
status
}
userinfo {
userId
}
}
cookies
}
}
`;
async function loginUser(args) {
if (!args.email) {
const user = generator_1.createUserIfNeeded();
args.email = user.email;
}
console.info('[loginUser] ' + args.email);
return await args.query({
mutation: exports.LOGIN_USER,
variables: {
input: {
userName: args.email,
password: 'Skava@123',
},
},
http: {
headers: new Headers(),
},
});
}
exports.loginUser = loginUser;
exports.isAlreadyRegisteredResponse = (responseData) => responseData.responseCode === '400' &&
responseData.properties &&
responseData.properties.state &&
responseData.properties.state.status.toLowerCase().includes('exist');
exports.isAlreadyRegisteredOrDebug = (responseData) => responseData === null ||
exports.isAlreadyRegisteredResponse(responseData) ||
JSON.stringify(responseData, undefined, 2);
exports.isRegistrationSuccess = (responseData) => typeof responseData.sessionId === 'string';
async function registerIfNeeded(args) {
const user = generator_1.createUserIfNeeded();
const registerUserResponse = await args.mutate({
mutation: exports.REGISTER_USER,
variables: {
input: {
firstName: 'test',
lastName: 'user',
userName: user.email,
password: 'Skava@123',
telephone: user.telephone,
challengeQuestion: 'What is your company name?',
challengeAnswer: 'Skava',
},
},
http: {
headers: new Headers(),
},
});
return { user, registerUserResponse };
}
exports.registerIfNeeded = registerIfNeeded;
function toUserHelpers(args) {
return {
registerGuest: () => registerGuest(args),
registerIfNeeded: () => registerIfNeeded(args),
loginUser: (email) => loginUser(Object.assign({}, args, { email })),
logoutUser: () => logoutUser(args),
fetchProfile: () => fetchProfile(args),
toLoginUserSessionId: () => toLoginUserSessionId(),
};
}
exports.toUserHelpers = toUserHelpers;
async function toLoginUserSessionId() {
const auto = await toUserHelpersAuto();
const login = await auto.loginUser();
return login.data.login.sessionId;
}
exports.toLoginUserSessionId = toLoginUserSessionId;
async function toLoginUserHeaders(withHeaders = false) {
const sessionId = await toLoginUserSessionId();
return new Headers({ 'x-sk-session-id': sessionId });
}
exports.toLoginUserHeaders = toLoginUserHeaders;
exports.USER_PROFILE = apollo_server_1.gql `
query UserProfileQuery(
$shouldEnablePaymentRetrival: Boolean
$shouldEnableAddressRetrival: Boolean
) {
profile(
shouldEnablePaymentRetrival: $shouldEnablePaymentRetrival
shouldEnableAddressRetrival: $shouldEnableAddressRetrival
) {
type
responseMessage
responseCode
properties {
creditcardinfo {
cards {
cardId
identifier
addressinfo {
addressId
isDefault
firstName
lastName
email
addressLine1
addressLine2
city
state
county
country
postalCode
additionalDetails {
label
value
}
telephone
}
cardNumber
cardType
expirationmonth
expirationyear
isDefault
lastFourDigits
nameOnCard
firstName
lastName
type
}
}
state {
starttime
status
}
userinfo {
userId
email
userName
firstName
lastName
userPhoto
phoneNumber
gender
dob
city
state
country
userTimeZone
preferences {
label
value
}
additionalinfo {
label
value
}
list {
id
partner
name
type
userId
tags {
label
value
}
}
addressinfo {
addressId
isDefault
firstName
lastName
email
addressLine1
addressLine2
city
state
county
country
postalCode
additionalDetails {
label
value
}
telephone
}
}
accounts {
accountid
userName
type
size
role
teams {
id
costCentreId
name
description
status
teamBuyer {
userId
teamId
}
}
}
}
cookies
}
}
`;
async function fetchProfile(args) {
const profileResponse = await args.query({
query: exports.USER_PROFILE,
http: {
headers: await toLoginUserHeaders(),
},
});
return profileResponse;
}
exports.fetchProfile = fetchProfile;
async function registerGuest(args) {
const registerGuestResponse = await args.query({
mutation: exports.REGISTER_GUEST,
});
return registerGuestResponse;
}
exports.registerGuest = registerGuest;
exports.LOGOUT_USER = apollo_server_1.gql `
query LogOutQuery {
logOut {
responseCode
responseMessage
properties {
state {
status
}
userinfo {
userId
}
}
type
}
}
`;
async function logoutUser(args) {
return await args.query({
mutation: exports.LOGOUT_USER,
http: {
headers: await toLoginUserHeaders(),
},
});
}
exports.logoutUser = logoutUser;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9ncmFwaHFsLW1vZHVsZXMvdXNlci9mYWN0b3J5L3VzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpREFBbUM7QUFDbkMsMkRBQStEO0FBQy9ELHlEQUE4RDtBQU85RCxvQ0FBcUM7QUFFckMsU0FBZ0IsTUFBTTtJQUNwQixNQUFNLE9BQU8sR0FBRyxpQ0FBbUIsQ0FBQyxrQkFBVSxFQUFFLENBQUMsQ0FBQTtJQUNqRCx5QkFBWSxPQUFPLEVBQUssYUFBYSxDQUFDLE9BQU8sQ0FBQyxFQUFFO0FBQ2xELENBQUM7QUFIRCx3QkFHQztBQUVELGlCQUFpQjtBQUNqQix3Q0FBd0M7QUFDakMsS0FBSyxVQUFVLGlCQUFpQjtJQUNyQyxNQUFNLFdBQVcsR0FBRyxpQ0FBbUIsQ0FBQyxrQkFBVSxFQUFFLENBQUMsQ0FBQTtJQUNyRCxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUE7SUFFOUMsTUFBTSxFQUFFLElBQUksRUFBRSxvQkFBb0IsRUFBRSxHQUFHLE1BQU0sV0FBVyxDQUFDLGdCQUFnQixFQUFFLENBQUE7SUFFM0UseUJBQ0ssV0FBVyxFQUNYLFdBQVcsSUFDZCxJQUFJO1FBQ0osb0JBQW9CLElBQ3JCO0FBQ0gsQ0FBQztBQVpELDhDQVlDO0FBRVksUUFBQSxhQUFhLEdBQUcsbUJBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FpQi9CLENBQUE7QUFDWSxRQUFBLGNBQWMsR0FBRyxtQkFBRyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Q0FlaEMsQ0FBQTtBQUVZLFFBQUEsVUFBVSxHQUFHLG1CQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FnQjVCLENBQUE7QUFFTSxLQUFLLFVBQVUsU0FBUyxDQUM3QixJQUF3QztJQUV4QyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNmLE1BQU0sSUFBSSxHQUFHLDhCQUFrQixFQUFF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