mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-08-31 20:51:26 +00:00

* cypress: AUT cypress failure part 1 * fixed failing cypress and skip airflow ingestion cypress * fixed test * addressing comment * fixed failing cypress * updated api wait * reverting skip test and config change * added License
135 lines
3.6 KiB
TypeScript
135 lines
3.6 KiB
TypeScript
/*
|
|
* Copyright 2023 Collate.
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
import {
|
|
descriptionBox,
|
|
interceptURL,
|
|
toastNotification,
|
|
verifyResponseStatusCode,
|
|
} from './common';
|
|
|
|
const owner = 'admin';
|
|
const assignee = 'adam.matthews2';
|
|
const secondAssignee = 'aaron_johnson0';
|
|
|
|
export type TaskDetails = {
|
|
assignee?: string;
|
|
term: string;
|
|
displayName?: string;
|
|
entity?: string;
|
|
serviceName?: string;
|
|
entityType?: string;
|
|
schemaName?: string;
|
|
};
|
|
|
|
export const verifyTaskDetails = (
|
|
regexPattern: RegExp,
|
|
taskAssignee?: string
|
|
) => {
|
|
cy.get('#task-panel').should('be.visible');
|
|
cy.get('[data-testid="task-title"]')
|
|
.invoke('text')
|
|
.then((textContent) => {
|
|
const matches = textContent.match(regexPattern);
|
|
|
|
expect(matches).to.not.be.null;
|
|
});
|
|
|
|
cy.get('[data-testid="owner-link"]').should('contain', owner);
|
|
|
|
cy.get(`[data-testid="${taskAssignee ?? assignee}"]`).should('be.visible');
|
|
};
|
|
|
|
export const editAssignee = () => {
|
|
interceptURL('PATCH', 'api/v1/feed/*', 'editAssignee');
|
|
|
|
cy.get('[data-testid="edit-assignees"]').click();
|
|
|
|
cy.get('[data-testid="select-assignee"] > .ant-select-selector').type(
|
|
secondAssignee
|
|
);
|
|
// select value from dropdown
|
|
verifyResponseStatusCode('@suggestApi', 200);
|
|
|
|
cy.get(`[data-testid="${secondAssignee}"]`)
|
|
.should('be.visible')
|
|
.trigger('mouseover')
|
|
.trigger('click');
|
|
|
|
cy.clickOutside();
|
|
|
|
cy.get('[data-testid="inline-save-btn"]').click();
|
|
|
|
verifyResponseStatusCode('@editAssignee', 200);
|
|
|
|
cy.get(`[data-testid="${assignee}"]`).should('be.visible');
|
|
};
|
|
|
|
export const createDescriptionTask = (
|
|
value: TaskDetails,
|
|
assigneeDisabled?: boolean
|
|
) => {
|
|
interceptURL('POST', 'api/v1/feed', 'createTask');
|
|
|
|
cy.get('#title').should(
|
|
'have.value',
|
|
`Update description for table ${value.term}`
|
|
);
|
|
|
|
if (assigneeDisabled) {
|
|
cy.get('[data-testid="select-assignee"] > .ant-select-selector').contains(
|
|
value.assignee
|
|
);
|
|
|
|
cy.get(
|
|
'[data-testid="select-assignee"] > .ant-select-selector input'
|
|
).should('be.disabled');
|
|
} else {
|
|
cy.get('[data-testid="select-assignee"] > .ant-select-selector').type(
|
|
value.assignee ?? assignee
|
|
);
|
|
// select value from dropdown
|
|
verifyResponseStatusCode('@suggestApi', 200);
|
|
|
|
cy.get(`[data-testid="${value.assignee ?? assignee}"]`)
|
|
.should('be.visible')
|
|
.trigger('mouseover')
|
|
.trigger('click');
|
|
cy.clickOutside();
|
|
}
|
|
|
|
cy.get(descriptionBox).scrollIntoView().clear().type('Updated description');
|
|
|
|
cy.get('button[type="submit"]').click();
|
|
verifyResponseStatusCode('@createTask', 201);
|
|
toastNotification('Task created successfully.');
|
|
};
|
|
|
|
export const createAndUpdateDescriptionTask = (value: TaskDetails) => {
|
|
createDescriptionTask(value);
|
|
|
|
// verify the task details
|
|
verifyTaskDetails(/#(\d+) Request to update description for/);
|
|
|
|
// edit task assignees
|
|
editAssignee();
|
|
|
|
// Accept the description suggestion which is created
|
|
cy.get('.ant-btn-compact-first-item').contains('Accept Suggestion').click();
|
|
|
|
verifyResponseStatusCode('@taskResolve', 200);
|
|
|
|
toastNotification('Task resolved successfully');
|
|
|
|
verifyResponseStatusCode('@entityFeed', 200);
|
|
};
|