## Summary - Migrate more hand-written test mocks to auto-generated data from a real Twenty instance - Add generators for views, billing plans, API keys; extend record generator for workspace members, favorites, connected accounts, calendar events - Remove 9 hand-written mock files replaced by generated equivalents - Update 16 test/story files to use generated data - Fix WorkflowEditActionEmailBase story assertion to match configured recipient email ## Test plan - [x] Lint, typecheck, unit tests pass - [ ] Storybook tests pass in CI
120 lines
2.4 KiB
TypeScript
120 lines
2.4 KiB
TypeScript
/* eslint-disable no-console, lingui/no-unlocalized-strings */
|
|
import { graphqlRequest, writeGeneratedFile } from './utils.js';
|
|
|
|
const FIND_ALL_CORE_VIEWS_QUERY = `
|
|
query FindAllCoreViews {
|
|
getCoreViews {
|
|
id
|
|
name
|
|
objectMetadataId
|
|
type
|
|
key
|
|
icon
|
|
position
|
|
isCompact
|
|
openRecordIn
|
|
kanbanAggregateOperation
|
|
kanbanAggregateOperationFieldMetadataId
|
|
mainGroupByFieldMetadataId
|
|
shouldHideEmptyGroups
|
|
anyFieldFilterValue
|
|
calendarFieldMetadataId
|
|
calendarLayout
|
|
visibility
|
|
createdByUserWorkspaceId
|
|
viewFields {
|
|
id
|
|
fieldMetadataId
|
|
viewId
|
|
isVisible
|
|
position
|
|
size
|
|
aggregateOperation
|
|
createdAt
|
|
updatedAt
|
|
deletedAt
|
|
}
|
|
viewFieldGroups {
|
|
id
|
|
name
|
|
position
|
|
isVisible
|
|
viewId
|
|
createdAt
|
|
updatedAt
|
|
deletedAt
|
|
viewFields {
|
|
id
|
|
fieldMetadataId
|
|
viewId
|
|
isVisible
|
|
position
|
|
size
|
|
aggregateOperation
|
|
createdAt
|
|
updatedAt
|
|
deletedAt
|
|
}
|
|
}
|
|
viewFilters {
|
|
id
|
|
fieldMetadataId
|
|
operand
|
|
value
|
|
viewFilterGroupId
|
|
positionInViewFilterGroup
|
|
subFieldName
|
|
viewId
|
|
createdAt
|
|
updatedAt
|
|
deletedAt
|
|
}
|
|
viewFilterGroups {
|
|
id
|
|
parentViewFilterGroupId
|
|
logicalOperator
|
|
positionInViewFilterGroup
|
|
viewId
|
|
}
|
|
viewSorts {
|
|
id
|
|
fieldMetadataId
|
|
direction
|
|
viewId
|
|
}
|
|
viewGroups {
|
|
id
|
|
isVisible
|
|
fieldValue
|
|
position
|
|
viewId
|
|
createdAt
|
|
updatedAt
|
|
deletedAt
|
|
}
|
|
}
|
|
}
|
|
`;
|
|
|
|
export const generateViews = async (token: string) => {
|
|
console.log('Fetching views from /metadata ...');
|
|
|
|
const data = (await graphqlRequest(
|
|
'/metadata',
|
|
FIND_ALL_CORE_VIEWS_QUERY,
|
|
token,
|
|
)) as {
|
|
getCoreViews: Record<string, unknown>[];
|
|
};
|
|
|
|
console.log(` Got ${data.getCoreViews.length} views.`);
|
|
|
|
writeGeneratedFile(
|
|
'metadata/views/mock-views-data.ts',
|
|
'mockedCoreViews',
|
|
'CoreViewWithRelations[]',
|
|
"import { type CoreViewWithRelations } from '@/views/types/CoreViewWithRelations';",
|
|
data.getCoreViews,
|
|
);
|
|
};
|