Umbraco Test Builders
What is it?
The @umbraco/json-models-builders package provides fluent builder classes for creating Umbraco backoffice models. These builders simplify test data creation with sensible defaults and chainable configuration methods.
Documentation
- umbraco-testing - Master skill for testing overview
- umbraco-e2e-testing - E2E testing (primary user of builders)
- umbraco-msw-testing - MSW testing (can use builders for mock data)
Installation
Builder Pattern
All builders follow this pattern:
Method Types
| Method Pattern | Purpose | Returns |
|---|
withXxx(value) | Set a property | this (for chaining) |
addXxx() | Add nested builder | Child builder |
done() | Return to parent | Parent builder |
build() | Generate final object | The model |
Core Builders
DocumentTypeBuilder
Create document types with properties, groups, and tabs:
Key Methods:
withName(name) - Document type name
withAlias(alias) - Document type alias
withAllowAsRoot(bool) - Allow at content root
withAllowCultureVariation(bool) - Enable variants
AsElementType() - Mark as element type (for blocks)
addGroup() - Add property group
addTab() - Add tab
withDefaultTemplate(template) - Set default template
ContentBuilder
Create content items:
Key Methods:
withContentTypeAlias(alias) - Document type alias
withTemplateAlias(alias) - Template alias
withAction(action) - 'publishNew', 'save', etc.
withParent(parentId) - Parent node ID
addVariant() - Add content variant
Create media items:
DataTypeBuilder
Create data types:
Property Builders
Add properties to document types:
TextBox Property
Rich Text Property
Content Picker Property
Custom Data Type Property
Block List / Block Grid Builders
BlockListDataTypeBuilder
BlockGridDataTypeBuilder
BlockListValueBuilder (for content)
User and Permission Builders
UserBuilder
UserGroupBuilder
PermissionsBuilder
Template and Code Builders
TemplateBuilder
StylesheetBuilder
ScriptBuilder
AliasHelper Utility
Generate safe aliases from names:
Complete Examples
Create Document Type with Properties
Create Element Type for Blocks
Create Content with Block List
All Available Builders (67 Total)
Main Builders
- DocumentTypeBuilder, ContentBuilder, MediaBuilder
- TemplateBuilder, StylesheetBuilder, ScriptBuilder
- DataTypeBuilder, MacroBuilder, PackageBuilder
- UserBuilder, UserGroupBuilder
- PartialViewBuilder, PartialViewMacroBuilder
- DomainBuilder, WebhookBuilder
Data Type Builders
- TextBoxDataTypeBuilder, DropDownDataTypeBuilder
- LabelDataTypeBuilder, SliderDataTypeBuilder
- BlockListDataTypeBuilder, BlockGridDataTypeBuilder
- GridDataTypeBuilder, CheckBoxListDataTypeBuilder
- ApprovedColorPickerDataTypeBuilder, FormPickerDataTypeBuilder
Property Builders
- TextBoxDocumentTypePropertyBuilder
- RichTextDocumentTypePropertyEditor
- MediaPickerDocumentTypePropertyBuilder
- ContentPickerPropertyBuilder
- UrlPickerPropertyBuilder
- DropDownDocumentTypePropertyBuilder
- CustomDocumentTypePropertyBuilder
Block Builders
- BlockListValueBuilder, BlockListEntryBuilder
- BlockGridValueBuilder, BlockGridEntryBuilder
- BlockGridLayoutBuilder, BlockGridAreaBuilder
- BlockGridItemsBuilder, BlockGridBlocksBuilder
Permission Builders
- PermissionsBuilder, NodePermissionBuilder
- NodePermissionCollectionBuilder
Other Builders
- DocumentTypeGroupBuilder, DocumentTypeTabBuilder
- ContentVariantBuilder, ContentVariantPropertyBuilder
- MediaFileBuilder, MediaPropertyBuilder
- WebhookEventBuilder, WebhookHeaderBuilder
- GridLayoutBuilder, GridRowConfigBuilder, GridAreaBuilder