mirror of
https://github.com/hcengineering/platform.git
synced 2025-01-03 00:43:59 +03:00
171 lines
6.8 KiB
TypeScript
171 lines
6.8 KiB
TypeScript
|
import { test } from '@playwright/test'
|
|||
|
import { attachScreenshot, generateId, HomepageURI, PlatformSetting, PlatformURI } from '../utils'
|
|||
|
import { DocumentStatus, NewCategory, NewTemplate, UpdateCategory } from '../model/types'
|
|||
|
import { allure } from 'allure-playwright'
|
|||
|
import { CategoriesPage } from '../model/documents/categories-page'
|
|||
|
import { CategoryDetailsPage } from '../model/documents/category-details-page'
|
|||
|
import { prepareCategoryStep } from './common-documents-steps'
|
|||
|
import { LeftSideMenuPage } from '../model/left-side-menu-page'
|
|||
|
import { NavigationMenuPage } from '../model/documents/navigation-menu-page'
|
|||
|
import { TemplatesPage } from '../model/documents/templates-page'
|
|||
|
import { DocumentContentPage } from '../model/documents/document-content-page'
|
|||
|
|
|||
|
test.use({
|
|||
|
storageState: PlatformSetting
|
|||
|
})
|
|||
|
|
|||
|
test.describe('QMS. Categories tests', () => {
|
|||
|
test.beforeEach(async ({ page }) => {
|
|||
|
await (await page.goto(`${PlatformURI}/${HomepageURI}`))?.finished()
|
|||
|
})
|
|||
|
|
|||
|
test('TESTS-131. Create a new category', async ({ page }) => {
|
|||
|
await allure.description('Requirement\nUsers need to create a new category')
|
|||
|
await allure.tms('TESTS-131', 'https://front.hc.engineering/workbench/platform/tracker/TESTS-131')
|
|||
|
const newCategory: NewCategory = {
|
|||
|
title: `New category-${generateId()}`,
|
|||
|
code: `CODE-${generateId(4)}`,
|
|||
|
description: `New category description-${generateId()}`,
|
|||
|
attachFileName: 'cat.jpeg'
|
|||
|
}
|
|||
|
|
|||
|
await prepareCategoryStep(page, newCategory)
|
|||
|
|
|||
|
await test.step('2. Check category information', async () => {
|
|||
|
const categoriesPage = new CategoriesPage(page)
|
|||
|
await categoriesPage.openCategory(newCategory.title)
|
|||
|
|
|||
|
const categoryDetailsPage = new CategoryDetailsPage(page)
|
|||
|
await categoryDetailsPage.checkTitle(newCategory.title)
|
|||
|
})
|
|||
|
|
|||
|
await attachScreenshot('TESTS-131_create_category.png', page)
|
|||
|
})
|
|||
|
|
|||
|
test('TESTS-132. Edit a Category', async ({ page }) => {
|
|||
|
await allure.description('Requirement\nUsers need to edit a category')
|
|||
|
await allure.tms('TESTS-132', 'https://front.hc.engineering/workbench/platform/tracker/TESTS-132')
|
|||
|
const editCategory: NewCategory = {
|
|||
|
title: `Edit category-${generateId()}`,
|
|||
|
code: `EDIT-${generateId(4)}`,
|
|||
|
description: `Edit category description-${generateId()}`
|
|||
|
}
|
|||
|
const updatedEditCategory: UpdateCategory = {
|
|||
|
description: `Updated edit category description-${generateId()}`,
|
|||
|
attachFileName: 'cat.jpeg'
|
|||
|
}
|
|||
|
|
|||
|
await prepareCategoryStep(page, editCategory)
|
|||
|
|
|||
|
await test.step('2. Edit Description and add Attachments', async () => {
|
|||
|
const categoriesPage = new CategoriesPage(page)
|
|||
|
await categoriesPage.openCategory(editCategory.title)
|
|||
|
|
|||
|
const categoryDetailsPage = new CategoryDetailsPage(page)
|
|||
|
await categoryDetailsPage.checkCategory(editCategory)
|
|||
|
await categoryDetailsPage.editCategory(updatedEditCategory)
|
|||
|
})
|
|||
|
|
|||
|
await test.step('3. Check category information', async () => {
|
|||
|
const categoryDetailsPage = new CategoryDetailsPage(page)
|
|||
|
await categoryDetailsPage.checkCategory({
|
|||
|
...editCategory,
|
|||
|
...updatedEditCategory
|
|||
|
})
|
|||
|
})
|
|||
|
|
|||
|
await attachScreenshot('TESTS-132_edit_category.png', page)
|
|||
|
})
|
|||
|
|
|||
|
test('TESTS-133. Delete Category', async ({ page }) => {
|
|||
|
await allure.description('Requirement\nUsers need to delete category')
|
|||
|
await allure.tms('TESTS-133', 'https://front.hc.engineering/workbench/platform/tracker/TESTS-133')
|
|||
|
const editCategory: NewCategory = {
|
|||
|
title: `Delete category-${generateId()}`,
|
|||
|
code: `DELETE-${generateId(4)}`,
|
|||
|
description: `Delete category description-${generateId()}`
|
|||
|
}
|
|||
|
|
|||
|
await prepareCategoryStep(page, editCategory)
|
|||
|
|
|||
|
await test.step('2. Delete a Category', async () => {
|
|||
|
const categoriesPage = new CategoriesPage(page)
|
|||
|
await categoriesPage.openCategory(editCategory.title)
|
|||
|
|
|||
|
const categoryDetailsPage = new CategoryDetailsPage(page)
|
|||
|
await categoryDetailsPage.checkCategory(editCategory)
|
|||
|
await categoryDetailsPage.executeMoreAction('Delete')
|
|||
|
})
|
|||
|
|
|||
|
await test.step('3. Check category doesn’t exist', async () => {
|
|||
|
const categoriesPage = new CategoriesPage(page)
|
|||
|
await categoriesPage.checkCategoryNotExist(editCategory.title)
|
|||
|
})
|
|||
|
|
|||
|
await attachScreenshot('TESTS-133_delete_category.png', page)
|
|||
|
})
|
|||
|
|
|||
|
test('TESTS-215. Can not Delete Category if there are templates associated', async ({ page }) => {
|
|||
|
await allure.description('Requirement\nUsers can not delete the category if there are templates associated')
|
|||
|
await allure.tms('TESTS-215', 'https://front.hc.engineering/workbench/platform/tracker/TESTS-215')
|
|||
|
const canNotDeleteCategory: NewCategory = {
|
|||
|
title: `Can not Delete category-${generateId()}`,
|
|||
|
code: `CANT_DELETE-${generateId(4)}`,
|
|||
|
description: `Can not Delete category description-${generateId()}`
|
|||
|
}
|
|||
|
const canNotDeleteCategoryTemplate: NewTemplate = {
|
|||
|
location: {
|
|||
|
space: 'Quality documents',
|
|||
|
parent: 'Quality documents'
|
|||
|
},
|
|||
|
title: `Can not Delete Category Template-${generateId()}`,
|
|||
|
description: `Can not Delete Category Template description-${generateId()}`,
|
|||
|
code: generateId(4),
|
|||
|
category: canNotDeleteCategory.title,
|
|||
|
reason: 'Test reason',
|
|||
|
reviewers: ['Appleseed John'],
|
|||
|
approvers: ['Appleseed John']
|
|||
|
}
|
|||
|
|
|||
|
await prepareCategoryStep(page, canNotDeleteCategory)
|
|||
|
|
|||
|
await test.step('2. Create new templates to the category', async () => {
|
|||
|
const leftSideMenuPage = new LeftSideMenuPage(page)
|
|||
|
await leftSideMenuPage.buttonDocuments.click()
|
|||
|
|
|||
|
const navigationMenuPage = new NavigationMenuPage(page)
|
|||
|
await navigationMenuPage.buttonTemplates.click()
|
|||
|
|
|||
|
const templatesPage = new TemplatesPage(page)
|
|||
|
await templatesPage.buttonCreateTemplate.click()
|
|||
|
|
|||
|
await templatesPage.createTemplate(canNotDeleteCategoryTemplate)
|
|||
|
|
|||
|
const documentContentPage = new DocumentContentPage(page)
|
|||
|
await documentContentPage.checkDocumentTitle(canNotDeleteCategoryTemplate.title)
|
|||
|
await documentContentPage.checkDocument({
|
|||
|
type: 'N/A',
|
|||
|
category: canNotDeleteCategoryTemplate.category ?? '',
|
|||
|
version: 'v0.1',
|
|||
|
status: DocumentStatus.DRAFT,
|
|||
|
owner: 'Appleseed John',
|
|||
|
author: 'Appleseed John'
|
|||
|
})
|
|||
|
})
|
|||
|
|
|||
|
await test.step('3. Try to Delete a Category', async () => {
|
|||
|
const navigationMenuPage = new NavigationMenuPage(page)
|
|||
|
await navigationMenuPage.buttonCategories.click()
|
|||
|
|
|||
|
const categoriesPage = new CategoriesPage(page)
|
|||
|
await categoriesPage.openCategory(canNotDeleteCategory.title)
|
|||
|
|
|||
|
const categoryDetailsPage = new CategoryDetailsPage(page)
|
|||
|
await categoryDetailsPage.checkCategory(canNotDeleteCategory)
|
|||
|
await categoryDetailsPage.checkMoreActionNotExist('Delete')
|
|||
|
})
|
|||
|
|
|||
|
await attachScreenshot('TESTS-215_can_not_delete_category.png', page)
|
|||
|
})
|
|||
|
})
|