SimpleGraphQLClient
SimpleGraphQLClient
A minimalistic GraphQL client for populating and querying test data.
Signature
class SimpleGraphQLClient {
constructor(vendureConfig: Required<VendureConfig>, apiUrl: string = '')
setAuthToken(token: string) => ;
setChannelToken(token: string | null) => ;
getAuthToken() => string;
async query(query: DocumentNode | TypedDocumentNode<T, V>, variables?: V, queryParams?: QueryParams) => Promise<T>;
async fetch(url: string, options: RequestInit = {}) => Promise<Response>;
async queryStatus(query: DocumentNode, variables?: V) => Promise<number>;
async asUserWithCredentials(username: string, password: string) => ;
async asSuperAdmin() => ;
async asAnonymousUser() => ;
async fileUploadMutation(options: {
mutation: DocumentNode;
filePaths: string[];
mapVariables: (filePaths: string[]) => any;
}) => Promise<any>;
}
Members
constructor
method
type:
(vendureConfig: Required<VendureConfig>, apiUrl: string = '') => SimpleGraphQLClient
setAuthToken
method
type:
(token: string) =>
Sets the authToken to be used in each GraphQL request.
setChannelToken
method
type:
(token: string | null) =>
Sets the authToken to be used in each GraphQL request.
getAuthToken
method
type:
() => string
Returns the authToken currently being used.
query
method
type:
(query: DocumentNode | TypedDocumentNode<T, V>, variables?: V, queryParams?: QueryParams) => Promise<T>
Performs both query and mutation operations.
fetch
method
type:
(url: string, options: RequestInit = {}) => Promise<Response>
Performs a raw HTTP request to the given URL, but also includes the authToken & channelToken
headers if they have been set. Useful for testing non-GraphQL endpoints, e.g. for plugins
which make use of REST controllers.
queryStatus
method
type:
(query: DocumentNode, variables?: V) => Promise<number>
Performs a query or mutation and returns the resulting status code.
asUserWithCredentials
method
type:
(username: string, password: string) =>
Attemps to log in with the specified credentials.
asSuperAdmin
method
type:
() =>
Logs in as the SuperAdmin user.
asAnonymousUser
method
type:
() =>
Logs out so that the client is then treated as an anonymous user.
fileUploadMutation
method
type:
(options: { mutation: DocumentNode; filePaths: string[]; mapVariables: (filePaths: string[]) => any; }) => Promise<any>
Perform a file upload mutation.
Upload spec: https://github.com/jaydenseric/graphql-multipart-request-spec Discussion of issue: https://github.com/jaydenseric/apollo-upload-client/issues/32