Begin Audit Functionality testing.

This commit is contained in:
Patrick Fic
2024-04-18 14:25:41 -07:00
parent 60fa62fa77
commit cf14111a73
17 changed files with 2838 additions and 650 deletions

View File

@@ -9,22 +9,17 @@ import apolloLogger from "apollo-link-logger";
import { auth } from "../firebase/firebase.utils";
import { SentryLink } from "apollo-link-sentry";
const errorLink = onError(
({ graphQLErrors, networkError, operation, forward }) => {
if (graphQLErrors)
graphQLErrors.forEach(({ message, locations, path }) =>
console.log(
`[GraphQL error]: Message: ${message}, Location: ${locations}, Path: ${path}`
)
);
if (networkError)
console.log(`[Network error]: ${JSON.stringify(networkError)}`);
console.log(operation.getContext());
}
);
const errorLink = onError(({ graphQLErrors, networkError, operation, forward }) => {
if (graphQLErrors)
graphQLErrors.forEach(({ message, locations, path }) =>
console.log(`[GraphQL error]: Message: ${message}, Location: ${locations}, Path: ${path}`)
);
if (networkError) console.log(`[Network error]: ${JSON.stringify(networkError)}`);
console.log(operation.getContext());
});
const httpLink = new HttpLink({
uri: import.meta.env.VITE_APP_GRAPHQL_ENDPOINT,
uri: import.meta.env.VITE_APP_GRAPHQL_ENDPOINT
});
const wsLink = new WebSocketLink({
@@ -33,25 +28,23 @@ const wsLink = new WebSocketLink({
lazy: true,
reconnect: true,
connectionParams: async () => {
const token =
auth.currentUser && (await auth.currentUser.getIdToken(true));
const token = auth.currentUser && (await auth.currentUser.getIdToken(true));
if (token) {
return {
headers: {
authorization: token ? `Bearer ${token}` : "",
},
authorization: token ? `Bearer ${token}` : ""
}
};
}
},
},
}
}
});
const subscriptionMiddleware = {
applyMiddleware: async (options, next) => {
options.authToken =
auth.currentUser && (await auth.currentUser.getIdToken(true));
options.authToken = auth.currentUser && (await auth.currentUser.getIdToken(true));
next();
},
}
};
wsLink.subscriptionClient.use([subscriptionMiddleware]);
@@ -67,10 +60,7 @@ const link = new HttpLink.split(
// "##",
// query
// );
return (
definition.kind === "OperationDefinition" &&
definition.operation === "subscription"
);
return definition.kind === "OperationDefinition" && definition.operation === "subscription";
},
wsLink,
httpLink
@@ -84,8 +74,8 @@ const authLink = setContext((_, { headers }) => {
return {
headers: {
...headers,
authorization: token ? `Bearer ${token}` : "",
},
authorization: token ? `Bearer ${token}` : ""
}
};
} else {
console.log("We have no authorization header.");
@@ -99,24 +89,22 @@ const retryLink = new RetryLink({
delay: {
initial: 500,
max: 5,
jitter: true,
jitter: true
},
attempts: {
max: 5,
retryIf: (error, _operation) => !!error,
},
retryIf: (error, _operation) => !!error
}
});
const sentryLink = new SentryLink();
const middlewares = [];
if (process.env.NODE_ENV === "development") {
if (import.meta.env.DEV) {
middlewares.push(apolloLogger);
}
middlewares.push(
sentryLink.concat(retryLink.concat(errorLink.concat(authLink.concat(link))))
);
middlewares.push(sentryLink.concat(retryLink.concat(errorLink.concat(authLink.concat(link)))));
const cache = new InMemoryCache({});
@@ -126,10 +114,10 @@ export default new ApolloClient({
connectToDevTools: process.env.NODE_ENV !== "production",
defaultOptions: {
query: {
fetchPolicy: "network-only",
fetchPolicy: "network-only"
},
watchQuery: {
fetchPolicy: "network-only",
},
},
fetchPolicy: "network-only"
}
}
});