fix: glossary term reviewers is not updating (#12707)

* fix: glossary term reviewers is not updating

* test: add cypress test for glossary term reviewer
This commit is contained in:
Sachin Chaurasiya 2023-08-02 16:09:57 +05:30 committed by GitHub
parent 67d4886b14
commit a28cdcda5c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 18 additions and 19 deletions

View File

@ -174,6 +174,13 @@ const fillGlossaryTermDetails = (term, glossary, isMutually = false) => {
.scrollIntoView() .scrollIntoView()
.should('be.visible') .should('be.visible')
.type('https://test.com'); .type('https://test.com');
// check for parent glossary reviewer
if (glossary.name === NEW_GLOSSARY.name) {
cy.get('[data-testid="user-tag"]')
.contains(glossary.reviewer)
.should('be.visible');
}
}; };
const createGlossaryTerm = (term, glossary, isMutually = false) => { const createGlossaryTerm = (term, glossary, isMutually = false) => {
@ -318,10 +325,7 @@ const updateTerms = (newTerm) => {
.click() .click()
.type(newTerm); .type(newTerm);
verifyResponseStatusCode('@getGlossaryTerm', 200); verifyResponseStatusCode('@getGlossaryTerm', 200);
cy.get('.ant-select-item-option-content') cy.get('.ant-select-item-option-content').contains(newTerm).click();
.contains(newTerm)
.should('be.visible')
.click();
cy.get('[data-testid="saveAssociatedTag"]').should('be.visible').click(); cy.get('[data-testid="saveAssociatedTag"]').should('be.visible').click();
verifyResponseStatusCode('@saveGlossaryTermData', 200); verifyResponseStatusCode('@saveGlossaryTermData', 200);

View File

@ -42,15 +42,10 @@ const AddGlossaryTermForm = ({
isFormInModal = false, isFormInModal = false,
formRef: form, formRef: form,
}: AddGlossaryTermFormProps) => { }: AddGlossaryTermFormProps) => {
const [reviewer, setReviewer] = useState<Array<EntityReference>>([]);
const [owner, setOwner] = useState<EntityReference | undefined>();
const [relatedTermsOptions, setRelatedTermsOptions] = useState< const [relatedTermsOptions, setRelatedTermsOptions] = useState<
EntityReference[] EntityReference[]
>([]); >([]);
const selectedOwner = Form.useWatch<EntityReference | undefined>( const owner = Form.useWatch<EntityReference | undefined>('owner', form);
'owner',
form
);
const reviewersList = const reviewersList =
Form.useWatch<EntityReference[]>('reviewers', form) ?? []; Form.useWatch<EntityReference[]>('reviewers', form) ?? [];
@ -115,7 +110,7 @@ const AddGlossaryTermForm = ({
name: name.trim(), name: name.trim(),
displayName: displayName?.trim(), displayName: displayName?.trim(),
description: description, description: description,
reviewers: reviewer, reviewers: reviewersList,
relatedTerms: editMode relatedTerms: editMode
? relatedTermsOptions ? relatedTermsOptions
.filter((item) => includes(relatedTerms, item.fullyQualifiedName)) .filter((item) => includes(relatedTerms, item.fullyQualifiedName))
@ -132,7 +127,7 @@ const AddGlossaryTermForm = ({
useEffect(() => { useEffect(() => {
if (glossaryReviewers.length > 0) { if (glossaryReviewers.length > 0) {
setReviewer(glossaryReviewers); form.setFieldValue('reviewers', glossaryReviewers);
} }
if (editMode && glossaryTerm) { if (editMode && glossaryTerm) {
const { const {
@ -160,11 +155,11 @@ const AddGlossaryTermForm = ({
}); });
if (reviewers) { if (reviewers) {
setReviewer(reviewers); form.setFieldValue('reviewers', reviewers);
} }
if (owner) { if (owner) {
setOwner(owner); form.setFieldValue('owner', owner);
} }
if (relatedTerms && relatedTerms.length > 0) { if (relatedTerms && relatedTerms.length > 0) {
@ -321,7 +316,6 @@ const AddGlossaryTermForm = ({
formItemProps: { formItemProps: {
valuePropName: 'selectedUsers', valuePropName: 'selectedUsers',
trigger: 'onUpdate', trigger: 'onUpdate',
initialValue: [],
}, },
}; };
@ -411,11 +405,11 @@ const AddGlossaryTermForm = ({
<div className="m-t-xss"> <div className="m-t-xss">
{getField(ownerField)} {getField(ownerField)}
{selectedOwner && ( {owner && (
<div className="tw-my-2" data-testid="owner-container"> <div className="tw-my-2" data-testid="owner-container">
<UserTag <UserTag
id={selectedOwner.id} id={owner.id}
name={getEntityName(selectedOwner)} name={getEntityName(owner)}
size={UserTagSize.small} size={UserTagSize.small}
/> />
</div> </div>

View File

@ -32,6 +32,7 @@ import {
ListGlossaryTermsParams, ListGlossaryTermsParams,
patchGlossaryTerm, patchGlossaryTerm,
} from 'rest/glossaryAPI'; } from 'rest/glossaryAPI';
import { getEncodedFqn } from 'utils/StringsUtils';
import { Glossary } from '../../generated/entity/data/glossary'; import { Glossary } from '../../generated/entity/data/glossary';
import { GlossaryTerm } from '../../generated/entity/data/glossaryTerm'; import { GlossaryTerm } from '../../generated/entity/data/glossaryTerm';
import { getEntityDeleteMessage } from '../../utils/CommonUtils'; import { getEntityDeleteMessage } from '../../utils/CommonUtils';
@ -205,7 +206,7 @@ const GlossaryV1 = ({
if (!isGlossaryActive && tab !== 'terms') { if (!isGlossaryActive && tab !== 'terms') {
history.push( history.push(
getGlossaryTermDetailsPath( getGlossaryTermDetailsPath(
selectedData.fullyQualifiedName || '', getEncodedFqn(selectedData.fullyQualifiedName || ''),
'terms' 'terms'
) )
); );