@umbraco/playwright-testhelpers 2.0.0-beta.3 → 2.0.0-beta.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/helpers/ApiHelpers.d.ts +20 -4
- package/dist/lib/helpers/ApiHelpers.js +28 -4
- package/dist/lib/helpers/ApiHelpers.js.map +1 -1
- package/dist/lib/helpers/ConstantHelper.d.ts +11 -0
- package/dist/lib/helpers/ConstantHelper.js +16 -0
- package/dist/lib/helpers/ConstantHelper.js.map +1 -0
- package/dist/lib/helpers/DataTypeApiHelper.d.ts +14 -14
- package/dist/lib/helpers/DataTypeApiHelper.js +114 -133
- package/dist/lib/helpers/DataTypeApiHelper.js.map +1 -1
- package/dist/lib/helpers/DataTypeUiHelper.d.ts +140 -0
- package/dist/lib/helpers/DataTypeUiHelper.js +439 -0
- package/dist/lib/helpers/DataTypeUiHelper.js.map +1 -0
- package/dist/lib/helpers/DictionaryApiHelper.d.ts +12 -8
- package/dist/lib/helpers/DictionaryApiHelper.js +104 -66
- package/dist/lib/helpers/DictionaryApiHelper.js.map +1 -1
- package/dist/lib/helpers/DictionaryUiHelper.d.ts +31 -0
- package/dist/lib/helpers/DictionaryUiHelper.js +92 -0
- package/dist/lib/helpers/DictionaryUiHelper.js.map +1 -0
- package/dist/lib/helpers/DocumentApiHelper.d.ts +2 -0
- package/dist/lib/helpers/DocumentApiHelper.js +17 -0
- package/dist/lib/helpers/DocumentApiHelper.js.map +1 -1
- package/dist/lib/helpers/DocumentTypeApiHelper.d.ts +25 -0
- package/dist/lib/helpers/DocumentTypeApiHelper.js +223 -0
- package/dist/lib/helpers/DocumentTypeApiHelper.js.map +1 -0
- package/dist/lib/helpers/DocumentTypeUiHelper.d.ts +23 -0
- package/dist/lib/helpers/DocumentTypeUiHelper.js +62 -0
- package/dist/lib/helpers/DocumentTypeUiHelper.js.map +1 -0
- package/dist/lib/helpers/ExamineManagementUiHelper.d.ts +15 -0
- package/dist/lib/helpers/ExamineManagementUiHelper.js +38 -0
- package/dist/lib/helpers/ExamineManagementUiHelper.js.map +1 -0
- package/dist/lib/helpers/HealthCheckApiHelper.d.ts +13 -0
- package/dist/lib/helpers/HealthCheckApiHelper.js +47 -0
- package/dist/lib/helpers/HealthCheckApiHelper.js.map +1 -0
- package/dist/lib/helpers/HealthCheckUiHelper.d.ts +23 -0
- package/dist/lib/helpers/HealthCheckUiHelper.js +59 -0
- package/dist/lib/helpers/HealthCheckUiHelper.js.map +1 -0
- package/dist/lib/helpers/IndexerApiHelper.d.ts +7 -0
- package/dist/lib/helpers/IndexerApiHelper.js +19 -0
- package/dist/lib/helpers/IndexerApiHelper.js.map +1 -0
- package/dist/lib/helpers/LanguageApiHelper.d.ts +8 -4
- package/dist/lib/helpers/LanguageApiHelper.js +46 -26
- package/dist/lib/helpers/LanguageApiHelper.js.map +1 -1
- package/dist/lib/helpers/LanguageUiHelper.d.ts +23 -0
- package/dist/lib/helpers/LanguageUiHelper.js +64 -0
- package/dist/lib/helpers/LanguageUiHelper.js.map +1 -0
- package/dist/lib/helpers/LogViewerUiHelper.d.ts +37 -0
- package/dist/lib/helpers/LogViewerUiHelper.js +102 -0
- package/dist/lib/helpers/LogViewerUiHelper.js.map +1 -0
- package/dist/lib/helpers/LoginUiHelper.d.ts +11 -0
- package/dist/lib/helpers/LoginUiHelper.js +30 -0
- package/dist/lib/helpers/LoginUiHelper.js.map +1 -0
- package/dist/lib/helpers/MediaApiHelper.d.ts +7 -0
- package/dist/lib/helpers/MediaApiHelper.js +28 -0
- package/dist/lib/helpers/MediaApiHelper.js.map +1 -0
- package/dist/lib/helpers/MediaTypeApiHelper.d.ts +22 -0
- package/dist/lib/helpers/MediaTypeApiHelper.js +194 -0
- package/dist/lib/helpers/MediaTypeApiHelper.js.map +1 -0
- package/dist/lib/helpers/MediaTypeUiHelper.d.ts +15 -0
- package/dist/lib/helpers/MediaTypeUiHelper.js +39 -0
- package/dist/lib/helpers/MediaTypeUiHelper.js.map +1 -0
- package/dist/lib/helpers/ModelsBuilderApiHelper.d.ts +6 -0
- package/dist/lib/helpers/ModelsBuilderApiHelper.js +15 -0
- package/dist/lib/helpers/ModelsBuilderApiHelper.js.map +1 -0
- package/dist/lib/helpers/ModelsBuilderUiHelper.d.ts +11 -0
- package/dist/lib/helpers/ModelsBuilderUiHelper.js +27 -0
- package/dist/lib/helpers/ModelsBuilderUiHelper.js.map +1 -0
- package/dist/lib/helpers/ObjectTypesApiHelper.d.ts +7 -0
- package/dist/lib/helpers/ObjectTypesApiHelper.js +25 -0
- package/dist/lib/helpers/ObjectTypesApiHelper.js.map +1 -0
- package/dist/lib/helpers/PackageApiHelper.d.ts +3 -2
- package/dist/lib/helpers/PackageApiHelper.js +6 -3
- package/dist/lib/helpers/PackageApiHelper.js.map +1 -1
- package/dist/lib/helpers/PackageUiHelper.d.ts +49 -0
- package/dist/lib/helpers/PackageUiHelper.js +134 -0
- package/dist/lib/helpers/PackageUiHelper.js.map +1 -0
- package/dist/lib/helpers/PartialViewApiHelper.d.ts +14 -10
- package/dist/lib/helpers/PartialViewApiHelper.js +124 -98
- package/dist/lib/helpers/PartialViewApiHelper.js.map +1 -1
- package/dist/lib/helpers/PartialViewUiHelper.d.ts +19 -0
- package/dist/lib/helpers/PartialViewUiHelper.js +57 -0
- package/dist/lib/helpers/PartialViewUiHelper.js.map +1 -0
- package/dist/lib/helpers/ProfilingUiHelper.d.ts +11 -0
- package/dist/lib/helpers/ProfilingUiHelper.js +27 -0
- package/dist/lib/helpers/ProfilingUiHelper.js.map +1 -0
- package/dist/lib/helpers/PublishedCacheApiHelper.d.ts +6 -0
- package/dist/lib/helpers/PublishedCacheApiHelper.js +15 -0
- package/dist/lib/helpers/PublishedCacheApiHelper.js.map +1 -0
- package/dist/lib/helpers/PublishedStatusUiHelper.d.ts +19 -0
- package/dist/lib/helpers/PublishedStatusUiHelper.js +47 -0
- package/dist/lib/helpers/PublishedStatusUiHelper.js.map +1 -0
- package/dist/lib/helpers/RelationTypeApiHelper.d.ts +15 -0
- package/dist/lib/helpers/{RelationType.js → RelationTypeApiHelper.js} +45 -58
- package/dist/lib/helpers/RelationTypeApiHelper.js.map +1 -0
- package/dist/lib/helpers/RelationTypeUiHelper.d.ts +21 -0
- package/dist/lib/helpers/RelationTypeUiHelper.js +55 -0
- package/dist/lib/helpers/RelationTypeUiHelper.js.map +1 -0
- package/dist/lib/helpers/ScriptApiHelper.d.ts +15 -10
- package/dist/lib/helpers/ScriptApiHelper.js +144 -97
- package/dist/lib/helpers/ScriptApiHelper.js.map +1 -1
- package/dist/lib/helpers/ScriptUiHelper.d.ts +16 -0
- package/dist/lib/helpers/ScriptUiHelper.js +51 -0
- package/dist/lib/helpers/ScriptUiHelper.js.map +1 -0
- package/dist/lib/helpers/StylesheetApiHelper.d.ts +15 -10
- package/dist/lib/helpers/StylesheetApiHelper.js +139 -103
- package/dist/lib/helpers/StylesheetApiHelper.js.map +1 -1
- package/dist/lib/helpers/StylesheetUiHelper.d.ts +22 -0
- package/dist/lib/helpers/StylesheetUiHelper.js +68 -0
- package/dist/lib/helpers/StylesheetUiHelper.js.map +1 -0
- package/dist/lib/helpers/TelemetryDataUiHelper.d.ts +10 -0
- package/dist/lib/helpers/TelemetryDataUiHelper.js +25 -0
- package/dist/lib/helpers/TelemetryDataUiHelper.js.map +1 -0
- package/dist/lib/helpers/TemplateApiHelper.d.ts +7 -5
- package/dist/lib/helpers/TemplateApiHelper.js +75 -51
- package/dist/lib/helpers/TemplateApiHelper.js.map +1 -1
- package/dist/lib/helpers/TemplateUiHelper.d.ts +21 -0
- package/dist/lib/helpers/TemplateUiHelper.js +66 -0
- package/dist/lib/helpers/TemplateUiHelper.js.map +1 -0
- package/dist/lib/helpers/TemporaryFileApiHelper.d.ts +1 -1
- package/dist/lib/helpers/TemporaryFileApiHelper.js +6 -10
- package/dist/lib/helpers/TemporaryFileApiHelper.js.map +1 -1
- package/dist/lib/helpers/UiBaseLocators.d.ts +163 -0
- package/dist/lib/helpers/UiBaseLocators.js +487 -0
- package/dist/lib/helpers/UiBaseLocators.js.map +1 -0
- package/dist/lib/helpers/UiHelpers.d.ts +48 -6
- package/dist/lib/helpers/UiHelpers.js +75 -16
- package/dist/lib/helpers/UiHelpers.js.map +1 -1
- package/dist/lib/helpers/UserApiHelper.d.ts +7 -3
- package/dist/lib/helpers/UserApiHelper.js +35 -13
- package/dist/lib/helpers/UserApiHelper.js.map +1 -1
- package/dist/lib/helpers/UserGroupApiHelper.d.ts +5 -3
- package/dist/lib/helpers/UserGroupApiHelper.js +20 -19
- package/dist/lib/helpers/UserGroupApiHelper.js.map +1 -1
- package/dist/lib/helpers/UserGroupUiHelper.d.ts +20 -0
- package/dist/lib/helpers/UserGroupUiHelper.js +56 -0
- package/dist/lib/helpers/UserGroupUiHelper.js.map +1 -0
- package/dist/lib/helpers/UserUiHelper.d.ts +41 -0
- package/dist/lib/helpers/UserUiHelper.js +116 -0
- package/dist/lib/helpers/UserUiHelper.js.map +1 -0
- package/dist/lib/helpers/WelcomeDashboardUiHelper.d.ts +9 -0
- package/dist/lib/helpers/WelcomeDashboardUiHelper.js +22 -0
- package/dist/lib/helpers/WelcomeDashboardUiHelper.js.map +1 -0
- package/dist/lib/helpers/index.d.ts +1 -0
- package/dist/lib/helpers/index.js +3 -1
- package/dist/lib/helpers/index.js.map +1 -1
- package/dist/lib/helpers/testExtension.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/umbraco.config.js +1 -1
- package/dist/umbraco.config.js.map +1 -1
- package/package.json +9 -7
- package/dist/lib/helpers/RelationType.d.ts +0 -15
- package/dist/lib/helpers/RelationType.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTypeUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/DataTypeUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {Page, Locator} from \"@playwright/test\";\nimport {UiBaseLocators} from \"./UiBaseLocators\";\n\nexport class DataTypeUiHelper extends UiBaseLocators {\n private readonly moveToThreeDotsBtn: Locator;\n private readonly copyToThreeDotsBtn: Locator;\n private readonly newDataTypeThreeDotsBtn: Locator;\n private readonly dataTypeNameTxt: Locator;\n private readonly selectBtn: Locator;\n private readonly createDataTypeFolderBtn: Locator;\n private readonly updateDataTypeFolderBtn: Locator;\n private readonly includeLabelsSlider: Locator;\n private readonly addColorBtn: Locator;\n private readonly colorValueTxt: Locator;\n private readonly colorLabelTxt: Locator;\n private readonly offsetTimeSlider: Locator;\n private readonly dateFormatTxt: Locator;\n private readonly pageSizeTxt: Locator;\n private readonly ascendingRadioBtn: Locator;\n private readonly descendingRadioBtn: Locator;\n private readonly addColumnsDisplayedBtn: Locator;\n private readonly contentAppNameTxt: Locator;\n private readonly columnsDisplayedDropDownBox: Locator;\n private readonly orderByDropDownBox: Locator;\n private readonly showContentAppFirstSlider: Locator;\n private readonly editInInfiniteEditorSlider: Locator;\n private readonly contentAppIconBtn: Locator;\n private readonly aliasTxt: Locator;\n private readonly widthTxt: Locator;\n private readonly heightTxt: Locator;\n private readonly addCropBtn: Locator;\n private readonly saveCropBtn: Locator;\n private readonly minimumTxt: Locator;\n private readonly maximumTxt: Locator;\n private readonly stepSizeTxt: Locator;\n private readonly optionTxt: Locator;\n private readonly addOptionBtn: Locator;\n private readonly maximumAllowedCharsTxt: Locator;\n private readonly numberOfRowsTxt: Locator;\n private readonly minHeightTxt: Locator;\n private readonly maxHeightTxt: Locator;\n private readonly acceptedFileExtensionsTxt: Locator;\n private readonly addAcceptedFileExtensionsBtn: Locator;\n private readonly minimumNumberOfItemsTxt: Locator;\n private readonly maximumNumberOfItemsTxt: Locator;\n private readonly ignoreUserStartNodesSlider: Locator;\n private readonly overlaySizeDropDownBox: Locator;\n private readonly hideAnchorQueryStringInputSlider: Locator;\n private readonly pickMultipleItemsSlider: Locator;\n private readonly enableFocalPointSlider: Locator;\n private readonly amountLowValueTxt: Locator;\n private readonly amountHighValueTxt: Locator;\n private readonly ignoreUserStartNodesCamelSlider: Locator;\n private readonly toolbarCheckboxes: Locator;\n private readonly addStylesheetBtn: Locator;\n private readonly dimensionsWidthTxt: Locator;\n private readonly dimensionsHeightTxt: Locator;\n private readonly maxImageSizeTxt: Locator;\n private readonly hideLabelSlider: Locator;\n private readonly defineTagGroupTxt: Locator;\n private readonly showOpenButtonSlider: Locator;\n private readonly enableMultipleChoiceSlider: Locator;\n private readonly addOptionsBtn: Locator;\n private readonly initialStateSlider: Locator;\n private readonly showToggleLabelsSlider: Locator;\n private readonly labelOnTxt: Locator;\n private readonly labelOffTxt: Locator;\n private readonly labelTxt: Locator;\n \n constructor(page: Page) {\n super(page);\n this.moveToThreeDotsBtn = page.locator('umb-entity-action').getByLabel('Move to...');\n this.copyToThreeDotsBtn = page.locator('umb-entity-action').getByLabel('Copy to...');\n this.newDataTypeThreeDotsBtn = page.locator('umb-data-type-create-options-modal').getByLabel('New Data Type...');\n this.dataTypeNameTxt = page.locator('umb-data-type-workspace-editor #nameInput #input');\n this.selectBtn = page.locator('umb-property-editor-ui-picker-modal').getByLabel('Select');\n this.createDataTypeFolderBtn = page.getByLabel('Create Folder');\n this.updateDataTypeFolderBtn = page.getByLabel('Update Folder');\n\n // Approved Color\n this.includeLabelsSlider = page.locator('#slider');\n this.addColorBtn = page.getByLabel('Add');\n this.colorValueTxt = page.getByPlaceholder('Value').getByRole('textbox');\n this.colorLabelTxt = page.getByPlaceholder('Label...').getByRole('textbox');\n\n // Date Picker\n this.offsetTimeSlider = page.locator('umb-property-layout[label=\"Offset time\"] #slider');\n this.dateFormatTxt = page.locator('umb-property-layout[label=\"Date format\"] #input');\n\n // List View\n this.pageSizeTxt = page.locator('umb-property-layout[label=\"Page Size\"] #input');\n this.ascendingRadioBtn = page.locator('uui-radio[label=\"Ascending [a-z]\"] #button');\n this.descendingRadioBtn = page.locator('uui-radio[label=\"Descending [z-a]\"] #button');\n this.addColumnsDisplayedBtn = page.locator('umb-property-layout[label=\"Columns Displayed\"]').getByLabel('Add');\n this.contentAppNameTxt = page.locator('umb-property-layout[label=\"Content app name\"] #input');\n this.showContentAppFirstSlider = page.locator('umb-property-layout[label=\"Show Content App First\"] #slider');\n this.editInInfiniteEditorSlider = page.locator('umb-property-layout[label=\"Edit in Infinite Editor\"] #slider');\n this.contentAppIconBtn = page.locator('umb-property-layout[label=\"Content app icon\"] uui-icon');\n this.columnsDisplayedDropDownBox = page.locator('umb-property-layout[label=\"Columns Displayed\"] select');\n this.orderByDropDownBox = page.locator('umb-property-layout[label=\"Order By\"] select');\n\n // Image Cropper\n this.labelTxt = page.getByLabel('Label', {exact: true});\n this.aliasTxt = page.getByLabel('Alias', {exact: true});\n this.widthTxt = page.getByLabel('Width', {exact: true});\n this.heightTxt = page.getByLabel('Height', {exact: true});\n this.addCropBtn = page.getByLabel('Add', {exact: true});\n this.saveCropBtn = page.locator('umb-property-editor-ui-image-crops-configuration').getByLabel('Save', {exact: true});\n\n // Numeric\n this.minimumTxt = page.locator('umb-property-layout[label=\"Minimum\"] #input');\n this.maximumTxt = page.locator('umb-property-layout[label=\"Maximum\"] #input');\n this.stepSizeTxt = page.locator('umb-property-layout[label=\"Step size\"] #input');\n\n // Radiobox\n this.optionTxt = page.locator('umb-property-layout[label=\"Add option\"] #input, umb-property-layout[label=\"Add options\"] #input');\n this.addOptionBtn = page.locator('umb-property-layout[label=\"Add option\"], umb-property-layout[label=\"Add options\"]').getByLabel('Add', {exact: true});\n\n // Textarea - Textstring\n this.maximumAllowedCharsTxt = page.locator('umb-property-layout[label=\"Maximum allowed characters\"] #input'); \n this.numberOfRowsTxt = page.locator('umb-property-layout[label=\"Number of rows\"] #input'); \n this.minHeightTxt = page.locator('umb-property-layout[label=\"Min height (pixels)\"] #input'); \n this.maxHeightTxt = page.locator('umb-property-layout[label=\"Max height (pixels)\"] #input'); \n\n // Upload\n this.acceptedFileExtensionsTxt = page.locator('umb-property-layout[label=\"Accepted file extensions\"] #input');\n this.addAcceptedFileExtensionsBtn = page.locator('umb-property-layout[label=\"Accepted file extensions\"]').getByLabel('Add', {exact: true});\n\n // Multi URL Picker\n this.minimumNumberOfItemsTxt = page.locator('umb-property-layout[label=\"Minimum number of items\"] #input'); \n this.maximumNumberOfItemsTxt = page.locator('umb-property-layout[label=\"Maximum number of items\"] #input');\n this.ignoreUserStartNodesSlider = page.locator('umb-property-layout[label=\"Ignore user start nodes\"] #slider');\n this.overlaySizeDropDownBox = page.locator('umb-property-layout[label=\"Overlay Size\"] select');\n this.hideAnchorQueryStringInputSlider = page.locator('umb-property-layout[label=\"Hide anchor/query string input\"] #slider');\n\n // Multiple Media Picker\n this.pickMultipleItemsSlider = page.locator('umb-property-layout[label=\"Pick multiple items\"] #slider');\n this.enableFocalPointSlider = page.locator('umb-property-layout[label=\"Enable Focal Point\"] #slider');\n this.amountLowValueTxt = page.locator('umb-property-layout[label=\"Amount\"]').getByLabel('Low value');\n this.amountHighValueTxt = page.locator('umb-property-layout[label=\"Amount\"]').getByLabel('High value');\n this.ignoreUserStartNodesCamelSlider = page.locator(\"umb-property-layout[label='Ignore User Start Nodes'] #slider\");\n \n // Rich Editor\n this.toolbarCheckboxes = page.locator('umb-property-layout[label=\"Toolbar\"] uui-checkbox');\n this.addStylesheetBtn = page.locator('umb-property-layout[label=\"Stylesheets\"] #add-button');\n this.dimensionsWidthTxt = page.locator('umb-property-layout[label=\"Dimensions\"]').getByLabel('Width');\n this.dimensionsHeightTxt = page.locator('umb-property-layout[label=\"Dimensions\"]').getByLabel('Height');\n this.maxImageSizeTxt = page.locator('umb-property-layout[label=\"Maximum size for inserted images\"] #input');\n this.hideLabelSlider = page.locator('umb-property-layout[label=\"Hide Label\"] #slider');\n\n // Tags\n this.defineTagGroupTxt = page.locator('umb-property-layout[label=\"Define a tag group\"] #input');\n\n // Content Picker\n this.showOpenButtonSlider = page.locator('umb-property-layout[label=\"Show open button\"] #slider');\n\n // Dropdown\n this.enableMultipleChoiceSlider = page.locator('umb-property-layout[label=\"Enable multiple choice\"] #slider');\n this.addOptionsBtn = page.locator('umb-property-layout[label=\"Add options\"]').getByLabel('Add', {exact: true});\n\n // True/false\n this.initialStateSlider = page.locator('umb-property-layout[label=\"Initial State\"] #slider');\n this.showToggleLabelsSlider = page.locator('umb-property-layout[label=\"Show toggle labels\"] #slider');\n this.labelOnTxt = page.locator('umb-property-layout[label=\"Label On\"] #input');\n this.labelOffTxt = page.locator('umb-property-layout[label=\"Label Off\"] #input');\n }\n\n async clickActionsMenuForDataType(name: string) {\n await this.clickActionsMenuForName(name);\n }\n\n async clickActionsMenuAtRoot() {\n await this.clickActionsMenuForDataType(\"Data Types\");\n }\n\n async clickRootFolderCaretButton() {\n await this.clickCaretButtonForName(\"Data Types\");\n }\n\n async goToDataType(dataTypeName: string) {\n await this.clickRootFolderCaretButton();\n await this.page.getByLabel(dataTypeName, {exact: true}).click({force: true});\n }\n\n async clickMoveToThreeDotsButton() {\n await this.moveToThreeDotsBtn.click();\n }\n\n async clickCopyToThreeDotsButton() {\n await this.copyToThreeDotsBtn.click();\n }\n\n async clickNewDataTypeThreeDotsButton() {\n await this.newDataTypeThreeDotsBtn.click();\n }\n\n async clickNewDataTypeFolderButton() {\n await this.newFolderThreeDotsBtn.click();\n }\n\n async enterDataTypeName(name: string) {\n await this.dataTypeNameTxt.click();\n await this.dataTypeNameTxt.clear();\n await this.dataTypeNameTxt.fill(name);\n }\n\n async clickCreateFolderButton() {\n await this.createDataTypeFolderBtn.click();\n }\n\n async clickUpdateFolderButton() {\n await this.updateDataTypeFolderBtn.click();\n }\n\n\n async selectPropertyEditorUIByName(name: string) {\n await this.page.locator('umb-property-editor-ui-picker-modal').getByText(name).click();\n await this.selectBtn.click();\n }\n\n async deleteDataType(name: string) {\n await this.clickActionsMenuForDataType(name);\n await this.deleteBtn.click();\n await this.confirmToDeleteBtn.click();\n }\n \n async deleteDataTypeFolder(folderName: string) {\n await this.clickActionsMenuForDataType(folderName);\n await this.deleteFolder();\n }\n\n // Approved Color\n async clickIncludeLabelsSlider() {\n await this.includeLabelsSlider.click();\n }\n\n async removeColorByValue(value: string) {\n await this.page.locator('uui-button').filter({has: this.page.getByLabel('Delete ' + value)}).locator('svg').click();\n await this.confirmToDeleteBtn.click();\n }\n\n async addColor(value: string, label: string) {\n await this.addColorBtn.click();\n await this.colorValueTxt.clear();\n await this.colorValueTxt.fill(value);\n await this.colorLabelTxt.clear();\n await this.colorLabelTxt.fill(label);\n }\n\n // Label\n async changeValueType(valueType: string) {\n await this.page.getByLabel('Select a value type').selectOption({ label: valueType });\n }\n\n // Date Picker\n async clickOffsetTimeSlider() {\n await this.offsetTimeSlider.click();\n }\n\n async enterDateFormatValue(value: string) {\n await this.dateFormatTxt.clear();\n await this.dateFormatTxt.fill(value);\n }\n\n // List View\n async enterPageSizeValue(value: string) {\n await this.pageSizeTxt.clear();\n await this.pageSizeTxt.fill(value);\n }\n\n async chooseOrderDirection(isAscending: boolean) {\n if (isAscending) {\n await this.ascendingRadioBtn.click();\n } else {\n await this.descendingRadioBtn.click();\n }\n }\n\n async addColumnDisplayed(columnName: string) {\n await this.columnsDisplayedDropDownBox.selectOption({ label: columnName });\n await this.addColumnsDisplayedBtn.click();\n }\n\n async removeColumnDisplayed(columnName: string) {\n await this.page.locator('uui-table-row').filter({has: this.page.getByText(columnName)}).getByText('Remove').click();\n }\n\n async chooseOrderByValue(value: string) {\n await this.orderByDropDownBox.selectOption({ label: value });\n }\n\n async enterContentAppName(name: string) {\n await this.contentAppNameTxt.clear();\n await this.contentAppNameTxt.fill(name);\n }\n\n async clickShowContentAppFirstSlider() {\n await this.showContentAppFirstSlider.click();\n }\n\n async clickEditInInfiniteEditorSlider() {\n await this.editInInfiniteEditorSlider.click();\n }\n\n async clickBulkActionPermissionsSliderByValue(value: string) {\n await this.page.locator(\"uui-toggle[label='\" + value + \"'] #slider\").click();\n }\n\n async clickContentAppIconButton() {\n await this.contentAppIconBtn.click();\n }\n\n async chooseContentAppIconByValue(value: string) {\n await this.page.getByLabel(value).getByRole('img').click();\n await this.submitBtn.click();\n }\n\n // Image Cropper\n async enterCropValues(label:string, alias: string, width: string, height: string) {\n await this.labelTxt.clear();\n await this.labelTxt.fill(label);\n await this.aliasTxt.clear();\n await this.aliasTxt.fill(alias);\n await this.widthTxt.clear();\n await this.widthTxt.fill(width);\n await this.heightTxt.clear();\n await this.heightTxt.fill(height);\n }\n\n async clickAddCropButton() {\n await this.addCropBtn.click();\n }\n\n async clickSaveCropButton() {\n await this.saveCropBtn.click();\n }\n\n async editCropByAlias(alias: string) {\n await this.page.locator('.crop').filter({has: this.page.getByText(alias)}).getByText('Edit').click();\n }\n\n async removeCropByAlias(alias: string) {\n await this.page.locator('.crop').filter({has: this.page.getByText(alias)}).getByText('Remove').click();\n }\n\n // Numeric\n async enterMinimumValue(value: string) {\n await this.minimumTxt.clear();\n await this.minimumTxt.fill(value);\n }\n\n async enterMaximumValue(value: string) {\n await this.maximumTxt.clear();\n await this.maximumTxt.fill(value);\n }\n\n async enterStepSizeValue(value: string) {\n await this.stepSizeTxt.clear();\n await this.stepSizeTxt.fill(value);\n }\n\n // Radiobox\n async removeOptionByName(name: string) {\n await this.page.locator(\"uui-button[label='Delete \" + name + \"'] svg\").click();\n await this.confirmToDeleteBtn.click();\n }\n\n async enterOptionName(name: string) {\n await this.optionTxt.last().clear();\n await this.optionTxt.last().fill(name);\n }\n\n async clickAddOptionButton() {\n await this.addOptionBtn.click();\n }\n\n // Textarea - Textstring\n async enterMaximumAllowedCharactersValue(value: string) {\n await this.maximumAllowedCharsTxt.clear();\n await this.maximumAllowedCharsTxt.fill(value);\n }\n\n async enterNumberOfRowsValue(value: string) {\n await this.numberOfRowsTxt.clear();\n await this.numberOfRowsTxt.fill(value);\n }\n\n async enterMaxHeightValue(value: string) {\n await this.maxHeightTxt.clear();\n await this.maxHeightTxt.fill(value);\n }\n\n async enterMinHeightValue(value: string) {\n await this.minHeightTxt.clear();\n await this.minHeightTxt.fill(value);\n }\n\n // Upload\n async enterAcceptedFileExtensions(value: string) {\n await this.acceptedFileExtensionsTxt.last().clear();\n await this.acceptedFileExtensionsTxt.last().fill(value);\n }\n\n async removeAcceptedFileExtensionsByValue(value: string) {\n await this.page.locator(\"uui-button[label='Delete \" + value + \"'] svg\").click();\n await this.confirmToDeleteBtn.click();\n }\n\n async clickAddAcceptedFileExtensionsButton() {\n await this.addAcceptedFileExtensionsBtn.click();\n }\n\n // Multi URL Picker\n async enterMinimumNumberOfItemsValue(value: string) {\n await this.minimumNumberOfItemsTxt.clear();\n await this.minimumNumberOfItemsTxt.fill(value);\n }\n\n async enterMaximumNumberOfItemsValue(value: string) {\n await this.maximumNumberOfItemsTxt.clear();\n await this.maximumNumberOfItemsTxt.fill(value);\n }\n\n async clickIgnoreUserStartNodesSlider() {\n await this.ignoreUserStartNodesSlider.click();\n }\n\n async chooseOverlaySizeByValue(value: string) {\n await this.overlaySizeDropDownBox.selectOption({ value: value });\n }\n\n async clickHideAnchorQueryStringInputSlider() {\n await this.hideAnchorQueryStringInputSlider.click();\n }\n\n // Multiple Media Picker\n async clickPickMultipleItemsSlider() {\n await this.pickMultipleItemsSlider.click();\n }\n\n async clickEnableFocalPointSlider() {\n await this.enableFocalPointSlider.click();\n }\n\n async enterAmountValue(lowValue: string, highValue: string) {\n await this.amountLowValueTxt.clear();\n await this.amountLowValueTxt.fill(lowValue);\n await this.amountHighValueTxt.clear();\n await this.amountHighValueTxt.fill(highValue);\n }\n\n async clickIgnoreUserStartNodesCamelSlider() {\n await this.ignoreUserStartNodesCamelSlider.click();\n }\n\n // Richtext Editor\n async pickTheToolbarOptionByValue(values) {\n for (var index in values) {\n await this.toolbarCheckboxes.filter({has: this.page.getByLabel(values[index])}).locator('#ticker svg').click();\n }\n }\n\n async addStylesheet(stylesheetName: string) {\n await this.addStylesheetBtn.click();\n await this.page.getByLabel(stylesheetName).click();\n await this.chooseModalBtn.click();\n }\n\n async enterDimensionsValue(width: string, height: string) {\n await this.dimensionsWidthTxt.clear();\n await this.dimensionsWidthTxt.fill(width);\n await this.dimensionsHeightTxt.clear();\n await this.dimensionsHeightTxt.fill(height);\n }\n\n async enterMaximumSizeForImages(value: string) {\n await this.maxImageSizeTxt.clear();\n await this.maxImageSizeTxt.fill(value);\n }\n\n async clickHideLabelSlider() {\n await this.hideLabelSlider.click();\n }\n\n // Tags\n async enterDefineTagGroupValue(value: string) {\n await this.defineTagGroupTxt.clear();\n await this.defineTagGroupTxt.fill(value);\n }\n\n // Content Picker\n async clickShowOpenButtonSlider() {\n await this.showOpenButtonSlider.click();\n }\n\n // Dropdown\n async clickEnableMultipleChoiceSlider() {\n await this.enableMultipleChoiceSlider.click();\n }\n\n async clickAddOptionsButton() {\n await this.addOptionsBtn.click();\n }\n\n // True/false\n async clickInitialStateSlider() {\n await this.initialStateSlider.click();\n }\n\n async clickShowToggleLabelsSlider() {\n await this.showToggleLabelsSlider.click();\n }\n\n async enterLabelOnValue(value: string) {\n await this.labelOnTxt.clear();\n await this.labelOnTxt.fill(value);\n }\n\n async enterLabelOffValue(value: string) {\n await this.labelOffTxt.clear();\n await this.labelOffTxt.fill(value);\n }\n}\n"]}
|
|
@@ -2,19 +2,23 @@ import { ApiHelpers } from "./ApiHelpers";
|
|
|
2
2
|
export declare class DictionaryApiHelper {
|
|
3
3
|
api: ApiHelpers;
|
|
4
4
|
constructor(api: ApiHelpers);
|
|
5
|
-
ensureNameNotExists(name: string): Promise<import("playwright-core").APIResponse | null>;
|
|
6
5
|
get(id: string): Promise<any>;
|
|
7
|
-
|
|
6
|
+
doesExist(id: string): Promise<boolean>;
|
|
8
7
|
create(name: string, translations?: {
|
|
9
8
|
isoCode: string;
|
|
10
9
|
translation: string;
|
|
11
10
|
}[], parentId?: string): Promise<string | undefined>;
|
|
12
|
-
delete(id: string): Promise<import("playwright-core").APIResponse>;
|
|
13
|
-
deleteByName(name: string): Promise<import("playwright-core").APIResponse | null>;
|
|
14
11
|
update(id: string, dictionary: object): Promise<import("playwright-core").APIResponse>;
|
|
15
|
-
|
|
16
|
-
exists(id: string): Promise<boolean>;
|
|
17
|
-
getChildren(id: string): Promise<any>;
|
|
18
|
-
getItems(ids: string[]): Promise<any>;
|
|
12
|
+
delete(id: string): Promise<import("playwright-core").APIResponse>;
|
|
19
13
|
getAllAtRoot(): Promise<import("playwright-core").APIResponse>;
|
|
14
|
+
getItems(ids: string[]): Promise<any>;
|
|
15
|
+
getChildren(id: string): Promise<any>;
|
|
16
|
+
private recurseDeleteChildren;
|
|
17
|
+
private recurseChildren;
|
|
18
|
+
getByName(name: string): Promise<any>;
|
|
19
|
+
doesNameExist(name: string): Promise<any>;
|
|
20
|
+
ensureNameNotExists(name: string): Promise<void>;
|
|
21
|
+
export(id: string, includeChildren: boolean): Promise<import("playwright-core").APIResponse>;
|
|
22
|
+
import(temporaryFileId: string, parentId: string): Promise<import("playwright-core").APIResponse>;
|
|
23
|
+
createDefaultDictionary(name: string): Promise<string | undefined>;
|
|
20
24
|
}
|
|
@@ -6,87 +6,32 @@ class DictionaryApiHelper {
|
|
|
6
6
|
constructor(api) {
|
|
7
7
|
this.api = api;
|
|
8
8
|
}
|
|
9
|
-
async ensureNameNotExists(name) {
|
|
10
|
-
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/dictionary?skip=0&take=10000');
|
|
11
|
-
const json = await response.json();
|
|
12
|
-
for (const sb of json.items) {
|
|
13
|
-
if (sb.name === name) {
|
|
14
|
-
if (sb.id !== null) {
|
|
15
|
-
return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/dictionary/' + sb.id);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
return null;
|
|
20
|
-
}
|
|
21
9
|
async get(id) {
|
|
22
10
|
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/dictionary/' + id);
|
|
23
|
-
|
|
24
|
-
if (json !== null) {
|
|
25
|
-
return json;
|
|
26
|
-
}
|
|
27
|
-
return null;
|
|
11
|
+
return await response.json();
|
|
28
12
|
}
|
|
29
|
-
async
|
|
30
|
-
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/dictionary
|
|
31
|
-
|
|
32
|
-
for (const sb of json.items) {
|
|
33
|
-
if (sb.name === name) {
|
|
34
|
-
if (sb.id !== null) {
|
|
35
|
-
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/dictionary/' + sb.id);
|
|
36
|
-
return await response.json();
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
return null;
|
|
13
|
+
async doesExist(id) {
|
|
14
|
+
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/dictionary/' + id);
|
|
15
|
+
return response.status() === 200;
|
|
41
16
|
}
|
|
42
17
|
async create(name, translations, parentId) {
|
|
43
18
|
const dictionary = {
|
|
44
19
|
"name": name,
|
|
45
20
|
"translations": translations,
|
|
46
|
-
"parentId": parentId
|
|
21
|
+
"parent": parentId ? { "id": parentId } : null
|
|
47
22
|
};
|
|
48
23
|
const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/dictionary', dictionary);
|
|
49
24
|
// Returns the id of the created dictionary
|
|
50
25
|
return response.headers().location.split("/").pop();
|
|
51
26
|
}
|
|
52
|
-
async delete(id) {
|
|
53
|
-
return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/dictionary/' + id);
|
|
54
|
-
}
|
|
55
|
-
async deleteByName(name) {
|
|
56
|
-
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/dictionary?skip=0&take=100000');
|
|
57
|
-
const json = await response.json();
|
|
58
|
-
for (const sb of json.items) {
|
|
59
|
-
if (sb.name === name) {
|
|
60
|
-
if (sb.id !== null)
|
|
61
|
-
return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/dictionary/' + sb.id);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
return null;
|
|
65
|
-
}
|
|
66
27
|
async update(id, dictionary) {
|
|
67
28
|
return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/dictionary/' + id, dictionary);
|
|
68
29
|
}
|
|
69
|
-
async
|
|
70
|
-
|
|
71
|
-
const json = await response.json();
|
|
72
|
-
for (const sb of json.items) {
|
|
73
|
-
if (sb.name === name) {
|
|
74
|
-
return true;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
return false;
|
|
78
|
-
}
|
|
79
|
-
async exists(id) {
|
|
80
|
-
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/dictionary/' + id);
|
|
81
|
-
return response.status() === 200;
|
|
30
|
+
async delete(id) {
|
|
31
|
+
return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/dictionary/' + id);
|
|
82
32
|
}
|
|
83
|
-
async
|
|
84
|
-
|
|
85
|
-
const json = response.json();
|
|
86
|
-
if (json !== null) {
|
|
87
|
-
return json;
|
|
88
|
-
}
|
|
89
|
-
return null;
|
|
33
|
+
async getAllAtRoot() {
|
|
34
|
+
return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/dictionary/root?skip=0&take=10000');
|
|
90
35
|
}
|
|
91
36
|
async getItems(ids) {
|
|
92
37
|
let idArray = 'id=' + ids[0];
|
|
@@ -101,8 +46,101 @@ class DictionaryApiHelper {
|
|
|
101
46
|
}
|
|
102
47
|
return null;
|
|
103
48
|
}
|
|
104
|
-
async
|
|
105
|
-
|
|
49
|
+
async getChildren(id) {
|
|
50
|
+
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/dictionary/children?parentId=' + id + '&skip=0&take=10000');
|
|
51
|
+
const items = await response.json();
|
|
52
|
+
return items.items;
|
|
53
|
+
}
|
|
54
|
+
async recurseDeleteChildren(id) {
|
|
55
|
+
const items = await this.getChildren(id);
|
|
56
|
+
for (const child of items) {
|
|
57
|
+
if (child.isContainer || child.hasChildren) {
|
|
58
|
+
await this.recurseDeleteChildren(child.id);
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
await this.delete(child.id);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return await this.delete(id);
|
|
65
|
+
}
|
|
66
|
+
async recurseChildren(name, id, toDelete) {
|
|
67
|
+
const items = await this.getChildren(id);
|
|
68
|
+
for (const child of items) {
|
|
69
|
+
if (child.name === name) {
|
|
70
|
+
if (!toDelete) {
|
|
71
|
+
return await this.get(child.id);
|
|
72
|
+
}
|
|
73
|
+
if (child.isContainer || child.hasChildren) {
|
|
74
|
+
return await this.recurseDeleteChildren(child.id);
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
return await this.delete(child.id);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
else if (child.isContainer || child.hasChildren) {
|
|
81
|
+
await this.recurseChildren(name, child.id, toDelete);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
async getByName(name) {
|
|
87
|
+
const rootDictionary = await this.getAllAtRoot();
|
|
88
|
+
const jsonDictionary = await rootDictionary.json();
|
|
89
|
+
for (const dictionaryItem of jsonDictionary.items) {
|
|
90
|
+
if (dictionaryItem.name === name) {
|
|
91
|
+
return this.get(dictionaryItem.id);
|
|
92
|
+
}
|
|
93
|
+
else if (dictionaryItem.isContainer || dictionaryItem.hasChildren) {
|
|
94
|
+
const result = await this.recurseChildren(name, dictionaryItem.id, false);
|
|
95
|
+
if (result) {
|
|
96
|
+
return result;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
async doesNameExist(name) {
|
|
103
|
+
return await this.getByName(name);
|
|
104
|
+
}
|
|
105
|
+
async ensureNameNotExists(name) {
|
|
106
|
+
const rootDictionary = await this.getAllAtRoot();
|
|
107
|
+
const jsonDictionary = await rootDictionary.json();
|
|
108
|
+
for (const dictionaryItem of jsonDictionary.items) {
|
|
109
|
+
if (dictionaryItem.name === name) {
|
|
110
|
+
if (dictionaryItem.isContainer || dictionaryItem.hasChildren) {
|
|
111
|
+
await this.recurseDeleteChildren(dictionaryItem.id);
|
|
112
|
+
}
|
|
113
|
+
await this.delete(dictionaryItem.id);
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
if (dictionaryItem.isContainer || dictionaryItem.hasChildren) {
|
|
117
|
+
await this.recurseChildren(name, dictionaryItem.id, true);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
async export(id, includeChildren) {
|
|
123
|
+
return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/dictionary/' + id + '/export?includeChidren=' + includeChildren);
|
|
124
|
+
}
|
|
125
|
+
async import(temporaryFileId, parentId) {
|
|
126
|
+
const importDictionary = {
|
|
127
|
+
"temporaryFile": temporaryFileId ? { "id": temporaryFileId } : null,
|
|
128
|
+
"parent": parentId ? { "id": parentId } : null
|
|
129
|
+
};
|
|
130
|
+
return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/dictionary/import', importDictionary);
|
|
131
|
+
}
|
|
132
|
+
async createDefaultDictionary(name) {
|
|
133
|
+
await this.ensureNameNotExists(name);
|
|
134
|
+
const allLanguages = await this.api.language.getAll();
|
|
135
|
+
const jsonLanguages = await allLanguages.json();
|
|
136
|
+
const languageIsoCode = jsonLanguages.items[0].isoCode;
|
|
137
|
+
const translations = [
|
|
138
|
+
{
|
|
139
|
+
"isoCode": languageIsoCode,
|
|
140
|
+
"translation": name
|
|
141
|
+
}
|
|
142
|
+
];
|
|
143
|
+
return await this.create(name, translations);
|
|
106
144
|
}
|
|
107
145
|
}
|
|
108
146
|
exports.DictionaryApiHelper = DictionaryApiHelper;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DictionaryApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/DictionaryApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class DictionaryApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async ensureNameNotExists(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/dictionary?skip=0&take=10000');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.id !== null) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/dictionary/' + sb.id);\n }\n }\n }\n return null;\n }\n\n async get(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/dictionary/' + id);\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async getByName(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/dictionary?skip=0&take=10000');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.id !== null) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/dictionary/' + sb.id);\n return await response.json();\n }\n }\n }\n return null;\n }\n\n async create(name: string, translations?: { isoCode: string, translation: string }[], parentId?: string) {\n const dictionary = {\n \"name\": name,\n \"translations\": translations,\n \"parentId\": parentId\n }\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/dictionary', dictionary);\n // Returns the id of the created dictionary\n return response.headers().location.split(\"/\").pop();\n }\n\n async delete(id: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/dictionary/' + id);\n }\n\n async deleteByName(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/dictionary?skip=0&take=100000');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.id !== null)\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/dictionary/' + sb.id);\n }\n }\n return null;\n }\n\n async update(id: string, dictionary: object) {\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/dictionary/' + id, dictionary);\n }\n\n async nameExists(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/dictionary?skip=0&take=100000');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n return true;\n }\n }\n return false;\n }\n\n async exists(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/dictionary/' + id);\n return response.status() === 200;\n }\n\n async getChildren(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/dictionary/children?parentId=' + id + '&skip=0&take=10000');\n const json = response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async getItems(ids: string[]) {\n let idArray = 'id=' + ids[0];\n let i: number;\n\n for (i = 1; i < ids.length; ++i) {\n idArray += '&id=' + ids[i];\n }\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/dictionary/item?' + idArray);\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async getAllAtRoot() {\n return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/dictionary/root?skip=0&take=10000');\n }\n}"]}
|
|
1
|
+
{"version":3,"file":"DictionaryApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/DictionaryApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class DictionaryApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async get(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/dictionary/' + id);\n return await response.json();\n }\n\n async doesExist(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/dictionary/' + id);\n return response.status() === 200;\n }\n\n async create(name: string, translations?: { isoCode: string, translation: string }[], parentId?: string) {\n const dictionary = {\n \"name\": name,\n \"translations\": translations,\n \"parent\": parentId ? {\"id\" : parentId} : null\n }\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/dictionary', dictionary);\n // Returns the id of the created dictionary\n return response.headers().location.split(\"/\").pop();\n }\n\n async update(id: string, dictionary: object) {\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/dictionary/' + id, dictionary);\n }\n\n async delete(id: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/dictionary/' + id);\n }\n\n async getAllAtRoot() {\n return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/dictionary/root?skip=0&take=10000');\n }\n\n async getItems(ids: string[]) {\n let idArray = 'id=' + ids[0];\n let i: number;\n\n for (i = 1; i < ids.length; ++i) {\n idArray += '&id=' + ids[i];\n }\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/dictionary/item?' + idArray);\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async getChildren(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/dictionary/children?parentId=' + id + '&skip=0&take=10000');\n const items = await response.json();\n return items.items;\n }\n\n private async recurseDeleteChildren(id: string) {\n const items = await this.getChildren(id);\n\n for (const child of items) {\n if (child.isContainer || child.hasChildren) {\n await this.recurseDeleteChildren(child.id);\n } else {\n await this.delete(child.id);\n }\n }\n return await this.delete(id);\n }\n\n private async recurseChildren(name: string, id: string, toDelete: boolean) {\n const items = await this.getChildren(id);\n\n for (const child of items) {\n if (child.name === name) {\n if (!toDelete) {\n return await this.get(child.id);\n }\n if (child.isContainer || child.hasChildren) {\n return await this.recurseDeleteChildren(child.id);\n } else {\n return await this.delete(child.id);\n }\n } else if (child.isContainer || child.hasChildren) {\n await this.recurseChildren(name, child.id, toDelete);\n }\n }\n return false;\n }\n\n async getByName(name: string) {\n const rootDictionary = await this.getAllAtRoot();\n const jsonDictionary = await rootDictionary.json();\n\n for (const dictionaryItem of jsonDictionary.items) {\n if (dictionaryItem.name === name) {\n return this.get(dictionaryItem.id);\n } else if (dictionaryItem.isContainer || dictionaryItem.hasChildren) {\n const result = await this.recurseChildren(name, dictionaryItem.id, false);\n if (result) {\n return result;\n }\n }\n }\n return false;\n }\n\n async doesNameExist(name: string) {\n return await this.getByName(name);\n }\n\n async ensureNameNotExists(name: string) {\n const rootDictionary = await this.getAllAtRoot();\n const jsonDictionary = await rootDictionary.json();\n\n for (const dictionaryItem of jsonDictionary.items) {\n if (dictionaryItem.name === name) {\n if (dictionaryItem.isContainer || dictionaryItem.hasChildren) {\n await this.recurseDeleteChildren(dictionaryItem.id);\n }\n await this.delete(dictionaryItem.id);\n } else {\n if (dictionaryItem.isContainer || dictionaryItem.hasChildren) {\n await this.recurseChildren(name, dictionaryItem.id, true);\n }\n }\n }\n }\n\n async export(id: string, includeChildren: boolean) {\n return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/dictionary/' + id + '/export?includeChidren=' + includeChildren);\n }\n\n async import(temporaryFileId: string, parentId: string) {\n const importDictionary = {\n \"temporaryFile\": temporaryFileId ? {\"id\" : temporaryFileId} : null,\n \"parent\": parentId ? {\"id\" : parentId} : null\n }\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/dictionary/import', importDictionary);\n }\n\n async createDefaultDictionary(name: string) {\n await this.ensureNameNotExists(name);\n const allLanguages = await this.api.language.getAll();\n const jsonLanguages = await allLanguages.json();\n const languageIsoCode = jsonLanguages.items[0].isoCode;\n const translations = [\n {\n \"isoCode\": languageIsoCode,\n \"translation\": name\n }\n ];\n\n return await this.create(name, translations);\n }\n}"]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Page } from "@playwright/test";
|
|
2
|
+
import { UiBaseLocators } from "./UiBaseLocators";
|
|
3
|
+
export declare class DictionaryUiHelper extends UiBaseLocators {
|
|
4
|
+
private readonly createDictionaryItemBtn;
|
|
5
|
+
private readonly dictionaryNameTxt;
|
|
6
|
+
private readonly createMenu;
|
|
7
|
+
private readonly exportMenu;
|
|
8
|
+
private readonly importMenu;
|
|
9
|
+
private readonly deleteMenu;
|
|
10
|
+
private readonly searchTxt;
|
|
11
|
+
private readonly exportBtn;
|
|
12
|
+
private readonly includeDescendantsCheckbox;
|
|
13
|
+
private readonly importBtn;
|
|
14
|
+
private readonly importFileTxt;
|
|
15
|
+
private readonly emptySearchResultMessage;
|
|
16
|
+
private readonly dictionaryListRows;
|
|
17
|
+
constructor(page: Page);
|
|
18
|
+
clickCreateDictionaryItemButton(): Promise<void>;
|
|
19
|
+
enterDictionaryName(name: string): Promise<void>;
|
|
20
|
+
clickActionsMenuForDictionary(name: string): Promise<void>;
|
|
21
|
+
enterSearchKeywordAndPressEnter(keyword: string): Promise<void>;
|
|
22
|
+
clickCreateMenu(): Promise<void>;
|
|
23
|
+
clickExportMenu(): Promise<void>;
|
|
24
|
+
clickImportMenu(): Promise<void>;
|
|
25
|
+
clickDeleteMenu(): Promise<void>;
|
|
26
|
+
deleteDictionary(): Promise<void>;
|
|
27
|
+
doesDictionaryListHaveText(text: string): Promise<boolean>;
|
|
28
|
+
exportDictionary(includesDescendants: boolean): Promise<void>;
|
|
29
|
+
importDictionary(filePath: string): Promise<void>;
|
|
30
|
+
isSearchResultMessageDisplayEmpty(message: string): Promise<void>;
|
|
31
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DictionaryUiHelper = void 0;
|
|
4
|
+
const test_1 = require("@playwright/test");
|
|
5
|
+
const UiBaseLocators_1 = require("./UiBaseLocators");
|
|
6
|
+
class DictionaryUiHelper extends UiBaseLocators_1.UiBaseLocators {
|
|
7
|
+
createDictionaryItemBtn;
|
|
8
|
+
dictionaryNameTxt;
|
|
9
|
+
createMenu;
|
|
10
|
+
exportMenu;
|
|
11
|
+
importMenu;
|
|
12
|
+
deleteMenu;
|
|
13
|
+
searchTxt;
|
|
14
|
+
exportBtn;
|
|
15
|
+
includeDescendantsCheckbox;
|
|
16
|
+
importBtn;
|
|
17
|
+
importFileTxt;
|
|
18
|
+
emptySearchResultMessage;
|
|
19
|
+
dictionaryListRows;
|
|
20
|
+
constructor(page) {
|
|
21
|
+
super(page);
|
|
22
|
+
this.createDictionaryItemBtn = page.getByLabel("Create dictionary item", { exact: true, });
|
|
23
|
+
this.dictionaryNameTxt = page.getByLabel("Dictionary Name", { exact: true, });
|
|
24
|
+
this.createMenu = page.locator("umb-entity-action").getByLabel("Create");
|
|
25
|
+
this.exportMenu = page.locator("umb-entity-action").getByLabel("Export");
|
|
26
|
+
this.importMenu = page.locator("umb-entity-action").getByLabel("Import");
|
|
27
|
+
this.deleteMenu = page.locator("umb-entity-action").getByLabel("Delete");
|
|
28
|
+
this.searchTxt = page.getByLabel("Type to filter...");
|
|
29
|
+
this.dictionaryListRows = page.locator("umb-dashboard-translation-dictionary uui-table-row");
|
|
30
|
+
this.exportBtn = page.locator("umb-export-dictionary-modal").getByLabel("Export");
|
|
31
|
+
this.includeDescendantsCheckbox = page.locator("umb-export-dictionary-modal #includeDescendants");
|
|
32
|
+
this.importBtn = page.locator("umb-export-dictionary-modal").getByLabel("Import");
|
|
33
|
+
this.importFileTxt = page.locator("umb-import-dictionary-modal #input");
|
|
34
|
+
this.emptySearchResultMessage = page.locator("umb-dashboard-translation-dictionary umb-empty-state");
|
|
35
|
+
}
|
|
36
|
+
async clickCreateDictionaryItemButton() {
|
|
37
|
+
await this.createDictionaryItemBtn.click();
|
|
38
|
+
}
|
|
39
|
+
async enterDictionaryName(name) {
|
|
40
|
+
await this.dictionaryNameTxt.clear();
|
|
41
|
+
await this.dictionaryNameTxt.fill(name);
|
|
42
|
+
}
|
|
43
|
+
async clickActionsMenuForDictionary(name) {
|
|
44
|
+
await this.clickActionsMenuForName(name);
|
|
45
|
+
}
|
|
46
|
+
async enterSearchKeywordAndPressEnter(keyword) {
|
|
47
|
+
await this.searchTxt.clear();
|
|
48
|
+
await this.searchTxt.fill(keyword);
|
|
49
|
+
await this.page.keyboard.press("Enter");
|
|
50
|
+
}
|
|
51
|
+
async clickCreateMenu() {
|
|
52
|
+
await this.createMenu.click();
|
|
53
|
+
}
|
|
54
|
+
async clickExportMenu() {
|
|
55
|
+
await this.exportMenu.click();
|
|
56
|
+
}
|
|
57
|
+
async clickImportMenu() {
|
|
58
|
+
await this.importMenu.click();
|
|
59
|
+
}
|
|
60
|
+
async clickDeleteMenu() {
|
|
61
|
+
await this.deleteMenu.click();
|
|
62
|
+
}
|
|
63
|
+
async deleteDictionary() {
|
|
64
|
+
await this.clickDeleteMenu();
|
|
65
|
+
await this.confirmToDeleteBtn.click();
|
|
66
|
+
}
|
|
67
|
+
async doesDictionaryListHaveText(text) {
|
|
68
|
+
const allRows = await this.dictionaryListRows.all();
|
|
69
|
+
for (let currentRow of allRows) {
|
|
70
|
+
const currentText = await currentRow.innerText();
|
|
71
|
+
if (currentText.includes(text)) {
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
async exportDictionary(includesDescendants) {
|
|
78
|
+
if (includesDescendants) {
|
|
79
|
+
await this.includeDescendantsCheckbox.click();
|
|
80
|
+
}
|
|
81
|
+
await this.exportBtn.click();
|
|
82
|
+
}
|
|
83
|
+
async importDictionary(filePath) {
|
|
84
|
+
await this.importFileTxt.setInputFiles(filePath);
|
|
85
|
+
await this.importBtn.click();
|
|
86
|
+
}
|
|
87
|
+
async isSearchResultMessageDisplayEmpty(message) {
|
|
88
|
+
return await (0, test_1.expect)(this.emptySearchResultMessage).toHaveText(message);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
exports.DictionaryUiHelper = DictionaryUiHelper;
|
|
92
|
+
//# sourceMappingURL=DictionaryUiHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DictionaryUiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/DictionaryUiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {Page, Locator, expect} from \"@playwright/test\";\nimport {UiBaseLocators} from \"./UiBaseLocators\";\n\nexport class DictionaryUiHelper extends UiBaseLocators {\n private readonly createDictionaryItemBtn: Locator;\n private readonly dictionaryNameTxt: Locator;\n private readonly createMenu: Locator;\n private readonly exportMenu: Locator;\n private readonly importMenu: Locator;\n private readonly deleteMenu: Locator;\n private readonly searchTxt: Locator;\n private readonly exportBtn: Locator;\n private readonly includeDescendantsCheckbox: Locator;\n private readonly importBtn: Locator;\n private readonly importFileTxt: Locator;\n private readonly emptySearchResultMessage: Locator;\n private readonly dictionaryListRows: Locator;\n\n constructor(page: Page) {\n super(page);\n this.createDictionaryItemBtn = page.getByLabel(\"Create dictionary item\", {exact: true,});\n this.dictionaryNameTxt = page.getByLabel(\"Dictionary Name\", {exact: true,});\n this.createMenu = page.locator(\"umb-entity-action\").getByLabel(\"Create\");\n this.exportMenu = page.locator(\"umb-entity-action\").getByLabel(\"Export\");\n this.importMenu = page.locator(\"umb-entity-action\").getByLabel(\"Import\");\n this.deleteMenu = page.locator(\"umb-entity-action\").getByLabel(\"Delete\");\n this.searchTxt = page.getByLabel(\"Type to filter...\");\n this.dictionaryListRows = page.locator(\"umb-dashboard-translation-dictionary uui-table-row\");\n this.exportBtn = page.locator(\"umb-export-dictionary-modal\").getByLabel(\"Export\");\n this.includeDescendantsCheckbox = page.locator(\"umb-export-dictionary-modal #includeDescendants\");\n this.importBtn = page.locator(\"umb-export-dictionary-modal\").getByLabel(\"Import\");\n this.importFileTxt = page.locator(\"umb-import-dictionary-modal #input\");\n this.emptySearchResultMessage = page.locator(\"umb-dashboard-translation-dictionary umb-empty-state\");\n }\n\n async clickCreateDictionaryItemButton() {\n await this.createDictionaryItemBtn.click();\n }\n\n async enterDictionaryName(name: string) {\n await this.dictionaryNameTxt.clear();\n await this.dictionaryNameTxt.fill(name);\n }\n\n async clickActionsMenuForDictionary(name: string) {\n await this.clickActionsMenuForName(name)\n }\n\n async enterSearchKeywordAndPressEnter(keyword: string) {\n await this.searchTxt.clear();\n await this.searchTxt.fill(keyword);\n await this.page.keyboard.press(\"Enter\");\n }\n\n async clickCreateMenu() {\n await this.createMenu.click();\n }\n\n async clickExportMenu() {\n await this.exportMenu.click();\n }\n\n async clickImportMenu() {\n await this.importMenu.click();\n }\n\n async clickDeleteMenu() {\n await this.deleteMenu.click();\n }\n\n async deleteDictionary() {\n await this.clickDeleteMenu();\n await this.confirmToDeleteBtn.click();\n }\n\n async doesDictionaryListHaveText(text: string) {\n const allRows = await this.dictionaryListRows.all();\n for (let currentRow of allRows) {\n const currentText = await currentRow.innerText();\n if (currentText.includes(text)) {\n return true;\n }\n }\n return false;\n }\n\n async exportDictionary(includesDescendants: boolean) {\n if (includesDescendants) {\n await this.includeDescendantsCheckbox.click();\n }\n await this.exportBtn.click();\n }\n\n async importDictionary(filePath: string) {\n await this.importFileTxt.setInputFiles(filePath);\n await this.importBtn.click();\n }\n\n async isSearchResultMessageDisplayEmpty(message: string) {\n return await expect(this.emptySearchResultMessage).toHaveText(message);\n }\n}\n"]}
|
|
@@ -2,4 +2,6 @@ import { ApiHelpers } from "./ApiHelpers";
|
|
|
2
2
|
export declare class DocumentApiHelper {
|
|
3
3
|
api: ApiHelpers;
|
|
4
4
|
constructor(api: ApiHelpers);
|
|
5
|
+
create(document: any): Promise<string | undefined>;
|
|
6
|
+
createDefaultDocument(documentName: string, documentTypeId: string): Promise<string | undefined>;
|
|
5
7
|
}
|
|
@@ -1,11 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DocumentApiHelper = void 0;
|
|
4
|
+
const json_models_builders_1 = require("@umbraco/json-models-builders");
|
|
4
5
|
class DocumentApiHelper {
|
|
5
6
|
api;
|
|
6
7
|
constructor(api) {
|
|
7
8
|
this.api = api;
|
|
8
9
|
}
|
|
10
|
+
async create(document) {
|
|
11
|
+
if (document == null) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/document', document);
|
|
15
|
+
return response.headers().location.split("/").pop();
|
|
16
|
+
}
|
|
17
|
+
async createDefaultDocument(documentName, documentTypeId) {
|
|
18
|
+
const document = new json_models_builders_1.DocumentBuilder()
|
|
19
|
+
.withDocumentTypeId(documentTypeId)
|
|
20
|
+
.addVariant()
|
|
21
|
+
.withName(documentName)
|
|
22
|
+
.done()
|
|
23
|
+
.build();
|
|
24
|
+
return await this.create(document);
|
|
25
|
+
}
|
|
9
26
|
}
|
|
10
27
|
exports.DocumentApiHelper = DocumentApiHelper;
|
|
11
28
|
//# sourceMappingURL=DocumentApiHelper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocumentApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/DocumentApiHelper.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"DocumentApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/DocumentApiHelper.ts"],"names":[],"mappings":";;;AACA,wEAA8D;AAE9D,MAAa,iBAAiB;IAC5B,GAAG,CAAY;IAEf,YAAY,GAAe;QACzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAAQ;QACnB,IAAI,QAAQ,IAAI,IAAI,EAAE;YACpB,OAAO;SACR;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,qCAAqC,EAAE,QAAQ,CAAC,CAAA;QACxG,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,YAAoB,EAAE,cAAsB;QACtE,MAAM,QAAQ,GAAG,IAAI,sCAAe,EAAE;aACnC,kBAAkB,CAAC,cAAc,CAAC;aAClC,UAAU,EAAE;aACV,QAAQ,CAAC,YAAY,CAAC;aACtB,IAAI,EAAE;aACR,KAAK,EAAE,CAAC;QACX,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;CACF;AAxBD,8CAwBC","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\nimport {DocumentBuilder} from \"@umbraco/json-models-builders\";\n\nexport class DocumentApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async create(document) {\n if (document == null) {\n return;\n }\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/document', document)\n return response.headers().location.split(\"/\").pop();\n }\n\n async createDefaultDocument(documentName: string, documentTypeId: string) {\n const document = new DocumentBuilder()\n .withDocumentTypeId(documentTypeId)\n .addVariant()\n .withName(documentName)\n .done()\n .build();\n return await this.create(document);\n }\n}"]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ApiHelpers } from "./ApiHelpers";
|
|
2
|
+
export declare class DocumentTypeApiHelper {
|
|
3
|
+
api: ApiHelpers;
|
|
4
|
+
constructor(api: ApiHelpers);
|
|
5
|
+
ensureNameNotExists(name: string): Promise<number | import("playwright-core").APIResponse | null | undefined>;
|
|
6
|
+
getAllAtRoot(): Promise<import("playwright-core").APIResponse>;
|
|
7
|
+
private recurseChildren;
|
|
8
|
+
private recurseDeleteChildren;
|
|
9
|
+
getChildren(id: string): Promise<any>;
|
|
10
|
+
create(documentType: any): Promise<string | undefined>;
|
|
11
|
+
get(id: string): Promise<any>;
|
|
12
|
+
getByName(name: string): Promise<any>;
|
|
13
|
+
doesNameExist(name: string): Promise<any>;
|
|
14
|
+
delete(id: string): Promise<number | undefined>;
|
|
15
|
+
getFolder(id: string): Promise<any>;
|
|
16
|
+
deleteFolder(id: string): Promise<import("playwright-core").APIResponse>;
|
|
17
|
+
createFolder(name: string, parentId?: string): Promise<import("playwright-core").APIResponse>;
|
|
18
|
+
renameFolder(folderId: string, folderName: string): Promise<import("playwright-core").APIResponse>;
|
|
19
|
+
createDefaultDocumentType(documentTypeName: string): Promise<string | undefined>;
|
|
20
|
+
createDocumentTypeWithPropertyEditor(documentTypeName: string, dataTypeName: string, dataTypeId: string, groupName?: string, varyByCulture?: boolean): Promise<string | undefined>;
|
|
21
|
+
createDocumentTypeWithTwoPropertyEditors(documentTypeName: string, dataTypeNameOne: string, dataTypeIdOne: string, dataTypeNameTwo: string, dataTypeIdTwo: string, groupName?: string): Promise<string | undefined>;
|
|
22
|
+
createDefaultDocumentTypeWithAllowAsRoot(documentTypeName: string): Promise<string | undefined>;
|
|
23
|
+
createDocumentTypeWithAllowedChildNode(documentTypeName: string, allowedChildNodeId: string): Promise<string | undefined>;
|
|
24
|
+
createDocumentTypeWithAllowedTemplate(documentTypeName: string, allowedTemplateId: string): Promise<string | undefined>;
|
|
25
|
+
}
|