Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions codegen.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ generates:
URL: string
mappers:
ConsoleLogEvent: ./mappers#ConsoleLogEventModel
StackTrace: ./mappers#StackTraceModel
HttpNetworkEvent: ./mappers#HttpNetworkEventModel
StepEvent: ./mappers#StepEventModel
StepEventEdge: ./mappers#StepEventEdgeModel
Expand Down
3 changes: 2 additions & 1 deletion src/resolvers/CallFrame.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import { CallFrameResolvers } from './types/generated'

const resolvers: CallFrameResolvers = {
columnNumber: (parent) => parent.columnNumber,
id: ({ id }) => id,
functionName: (parent) => parent.functionName,
lineNumber: (parent) => parent.lineNumber,
url: (parent) => parent.url,
columnNumber: (parent) => parent.columnNumber,
};

export default resolvers
12 changes: 5 additions & 7 deletions src/resolvers/ConsoleLogEvent.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
import { assertNonNull } from '../util/assertNonNull.js';
import { ConsoleLogEventResolvers, ConsoleLogLevel } from './types/generated.js';

import { encodeId } from '../util/id.js';
const resolvers: ConsoleLogEventResolvers = {
id: ({ id }) => id,
id({ id }) {
return encodeId('ConsoleLogEvent', id);
},
async at({ id }, _args, { dataSources }) {
const event = assertNonNull(await dataSources.consoleEvent.getById(id));
return event.timestamp;
Expand Down Expand Up @@ -36,13 +38,9 @@ const resolvers: ConsoleLogEventResolvers = {
},
async stackTrace({ id }, _args, { dataSources }) {
const event = assertNonNull(await dataSources.consoleEvent.getById(id));
const callFrames = event.stackTrace.callFrames.map((callFrame) => ({
__typename: 'CallFrame' as const,
...callFrame,
}));
return {
__typename: 'StackTrace',
callFrames: callFrames,
id: id,
};
},
async testExecution({ id }, _args, { dataSources }) {
Expand Down
2 changes: 1 addition & 1 deletion src/resolvers/Query.ts
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ const resolvers: QueryResolvers = {
id: decodedId,
};
},

async node(root, { id }, context, info) {
const decodedId = decodeId(id);
if (!decodedId) {
Expand Down
18 changes: 14 additions & 4 deletions src/resolvers/StackTrace.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,19 @@
import {StackTraceResolvers} from './types/generated';

import { StackTraceResolvers } from './types/generated';
import { assertNonNull } from '../util/assertNonNull.js';


const resolvers: StackTraceResolvers = {
callFrames: (parent) => parent.callFrames,
id: ({ id }) => `${id}/stack`,
async callFrames(parent, _args, { dataSources }) {
const eventId = parent.id
const event = assertNonNull(await dataSources.consoleEvent.getById(eventId));
const callFrames = event.stackTrace.callFrames.map((callFrame, idx) => ({
__typename: 'CallFrame' as const,
id: `${event.id}/stack/${idx}`,
...callFrame,
}));
return callFrames;
},
};

export default resolvers
export default resolvers;
10 changes: 7 additions & 3 deletions src/resolvers/types/generated.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { GraphQLResolveInfo, GraphQLScalarType, GraphQLScalarTypeConfig } from 'graphql';
import { ConsoleLogEventModel, HttpNetworkEventModel, StepEventModel, StepEventEdgeModel, StepEventConnectionModel, ScenarioEventModel, TestExecutionModel, TestExecutionConnectionModel, TestExecutionEdgeModel, TestExecutionEventConnectionModel, TestExecutionEventEdgeModel, TestRunModel, TestRunConnectionModel, TestRunEdgeModel, GitHubRevisionModel, CommandChainEventModel, CommandChainEventEdgeModel, CommandChainEventConnectionModel, CommandEventModel, CommandEventEdgeModel, CommandEventConnectionModel, TestExecutionSnapshotModel, TestExecutionScreenshotModel, GitHubRevisionFileModel, GitHubRevisionFileLineModel, GitHubRevisionFileLineColumnModel, SourceCodeManagementRevisionFileLineColumnModel } from './mappers';
import { ConsoleLogEventModel, StackTraceModel, HttpNetworkEventModel, StepEventModel, StepEventEdgeModel, StepEventConnectionModel, ScenarioEventModel, TestExecutionModel, TestExecutionConnectionModel, TestExecutionEdgeModel, TestExecutionEventConnectionModel, TestExecutionEventEdgeModel, TestRunModel, TestRunConnectionModel, TestRunEdgeModel, GitHubRevisionModel, CommandChainEventModel, CommandChainEventEdgeModel, CommandChainEventConnectionModel, CommandEventModel, CommandEventEdgeModel, CommandEventConnectionModel, TestExecutionSnapshotModel, TestExecutionScreenshotModel, GitHubRevisionFileModel, GitHubRevisionFileLineModel, GitHubRevisionFileLineColumnModel, SourceCodeManagementRevisionFileLineColumnModel } from './mappers';
import { Context } from '../../context';
export type Maybe<T> = T | null;
export type InputMaybe<T> = Maybe<T>;
Expand Down Expand Up @@ -35,6 +35,7 @@ export type CallFrame = {
readonly __typename: 'CallFrame';
readonly columnNumber: Scalars['Int'];
readonly functionName: Scalars['String'];
readonly id: Scalars['ID'];
readonly lineNumber: Scalars['Int'];
readonly url: Scalars['URL'];
};
Expand Down Expand Up @@ -579,6 +580,7 @@ export type SourceCodeManagementRevisionFileLineColumn = {
export type StackTrace = {
readonly __typename: 'StackTrace';
readonly callFrames: ReadonlyArray<CallFrame>;
readonly id: Scalars['ID'];
};

export type StepDefinition = {
Expand Down Expand Up @@ -887,7 +889,7 @@ export type ResolversTypes = {
SourceCodeManagementRevisionFile: ResolversTypes['GitHubRevisionFile'];
SourceCodeManagementRevisionFileLine: ResolversTypes['GitHubRevisionFileLine'];
SourceCodeManagementRevisionFileLineColumn: ResolverTypeWrapper<SourceCodeManagementRevisionFileLineColumnModel>;
StackTrace: ResolverTypeWrapper<StackTrace>;
StackTrace: ResolverTypeWrapper<StackTraceModel>;
StepDefinition: ResolverTypeWrapper<StepDefinition>;
StepEvent: ResolverTypeWrapper<StepEventModel>;
StepEventConnection: ResolverTypeWrapper<StepEventConnectionModel>;
Expand Down Expand Up @@ -981,7 +983,7 @@ export type ResolversParentTypes = {
SourceCodeManagementRevisionFile: ResolversParentTypes['GitHubRevisionFile'];
SourceCodeManagementRevisionFileLine: ResolversParentTypes['GitHubRevisionFileLine'];
SourceCodeManagementRevisionFileLineColumn: SourceCodeManagementRevisionFileLineColumnModel;
StackTrace: StackTrace;
StackTrace: StackTraceModel;
StepDefinition: StepDefinition;
StepEvent: StepEventModel;
StepEventConnection: StepEventConnectionModel;
Expand Down Expand Up @@ -1025,6 +1027,7 @@ export type BrowserVersionResolvers<ContextType = Context, ParentType extends Re
export type CallFrameResolvers<ContextType = Context, ParentType extends ResolversParentTypes['CallFrame'] = ResolversParentTypes['CallFrame']> = {
columnNumber: Resolver<ResolversTypes['Int'], ParentType, ContextType>;
functionName: Resolver<ResolversTypes['String'], ParentType, ContextType>;
id: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
lineNumber: Resolver<ResolversTypes['Int'], ParentType, ContextType>;
url: Resolver<ResolversTypes['URL'], ParentType, ContextType>;
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
Expand Down Expand Up @@ -1414,6 +1417,7 @@ export type SourceCodeManagementRevisionFileLineColumnResolvers<ContextType = Co

export type StackTraceResolvers<ContextType = Context, ParentType extends ResolversParentTypes['StackTrace'] = ResolversParentTypes['StackTrace']> = {
callFrames: Resolver<ReadonlyArray<ResolversTypes['CallFrame']>, ParentType, ContextType>;
id: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
};

Expand Down
5 changes: 5 additions & 0 deletions src/resolvers/types/mappers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,11 @@ export interface ConsoleLogEventModel {
id: string,
}

export interface StackTraceModel {
__typename: 'StackTrace',
id: string,
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It might be worth changing this to consoleLogEvent: ConsoleLogEventModel to make it clearer what's going on?

}

export interface HttpNetworkEventModel {
__typename: 'HttpNetworkEvent',
id: string,
Expand Down
2 changes: 2 additions & 0 deletions src/schema/execution/console/StackTrace.graphql
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
type CallFrame {
id: ID!
functionName: String!
url: URL!
lineNumber: Int!
columnNumber: Int!
Comment thread
josephburgess marked this conversation as resolved.
Outdated
}

type StackTrace {
id: ID!
callFrames: [CallFrame!]!
}