Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
"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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