Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(chat-e2e): publish single chat tests #2182

Merged
merged 66 commits into from
Oct 3, 2024
Merged
Show file tree
Hide file tree
Changes from 62 commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
48281c1
feat/added-gpt4o-mini-model: added 'gpt-4o-mini-2024-07-18' model to …
irinakartun Aug 5, 2024
2e490ae
Merge branch 'development' of github.com:epam/ai-dial-chat into devel…
irinakartun Aug 6, 2024
38868f8
Merge branch 'development' of github.com:epam/ai-dial-chat into devel…
irinakartun Aug 6, 2024
c1a14e6
Merge branch 'development' of github.com:epam/ai-dial-chat into devel…
irinakartun Aug 8, 2024
d524ea2
Merge branch 'development' of github.com:epam/ai-dial-chat into devel…
irinakartun Aug 8, 2024
6083a80
Merge branch 'development' of github.com:epam/ai-dial-chat into devel…
irinakartun Aug 8, 2024
46cef34
Merge branch 'development' of github.com:epam/ai-dial-chat into devel…
irinakartun Aug 12, 2024
a6c287b
Merge branch 'development' of github.com:epam/ai-dial-chat into devel…
irinakartun Aug 12, 2024
d9fff5c
Merge branch 'development' of github.com:epam/ai-dial-chat into devel…
irinakartun Aug 14, 2024
66efe32
Merge branch 'development' of github.com:epam/ai-dial-chat into devel…
irinakartun Aug 14, 2024
2440f5b
Merge branch 'development' of github.com:epam/ai-dial-chat into devel…
irinakartun Aug 14, 2024
1f83a39
Merge branch 'development' of github.com:epam/ai-dial-chat into devel…
irinakartun Aug 20, 2024
d5bef63
Merge branch 'development' of github.com:epam/ai-dial-chat into devel…
irinakartun Aug 22, 2024
559850f
Merge branch 'development' of github.com:epam/ai-dial-chat into devel…
irinakartun Aug 22, 2024
d378a9e
Merge branch 'development' of github.com:epam/ai-dial-chat into devel…
irinakartun Aug 23, 2024
ad52731
Merge branch 'development' of github.com:epam/ai-dial-chat into devel…
irinakartun Aug 26, 2024
e5621b4
Merge branch 'development' of github.com:epam/ai-dial-chat into devel…
irinakartun Aug 27, 2024
1062e7b
Merge branch 'development' of github.com:epam/ai-dial-chat into devel…
irinakartun Aug 29, 2024
cb78d9a
Merge branch 'development' of github.com:epam/ai-dial-chat into devel…
irinakartun Sep 2, 2024
aabe5dd
Merge branch 'development' of github.com:epam/ai-dial-chat into devel…
irinakartun Sep 5, 2024
49533d9
Merge branch 'development' of github.com:epam/ai-dial-chat into devel…
irinakartun Sep 6, 2024
5b85b3e
Merge branch 'development' of github.com:epam/ai-dial-chat into devel…
irinakartun Sep 6, 2024
2eaabb2
Merge branch 'development' of github.com:epam/ai-dial-chat into devel…
irinakartun Sep 10, 2024
6a953bf
Merge branch 'development' of github.com:epam/ai-dial-chat into devel…
irinakartun Sep 11, 2024
a9f028f
Merge branch 'development' of github.com:epam/ai-dial-chat into devel…
irinakartun Sep 12, 2024
aa6441f
Merge branch 'development' of github.com:epam/ai-dial-chat into devel…
irinakartun Sep 12, 2024
ebb4ffe
Merge branch 'development' of github.com:epam/ai-dial-chat into devel…
irinakartun Sep 14, 2024
593a86e
Merge branch 'development' of github.com:epam/ai-dial-chat into devel…
irinakartun Sep 17, 2024
f2be92a
feat/publish-single-chat-tests: implemented publishing request tests
irinakartun Sep 23, 2024
0ebcbe5
Merge branch 'development' of github.com:epam/ai-dial-chat into feat/…
irinakartun Sep 23, 2024
be1edd9
feat/publish-single-chat-tests: formatted
irinakartun Sep 23, 2024
e7b5d7f
Merge branch 'development' into feat/publish-single-chat-tests
irinakartun Sep 24, 2024
43e762a
feat/publish-single-chat-tests: added test for re-publishing check
irinakartun Sep 24, 2024
9554010
Merge remote-tracking branch 'origin/feat/publish-single-chat-tests' …
irinakartun Sep 24, 2024
f18829e
feat/publish-single-chat-tests: log to revert
irinakartun Sep 24, 2024
194129d
Revert "feat/publish-single-chat-tests: log to revert"
irinakartun Sep 24, 2024
e091b29
feat/publish-single-chat-tests: fix folder expand
irinakartun Sep 24, 2024
a4dd280
Merge branch 'development' into feat/publish-single-chat-tests
irinakartun Sep 24, 2024
53d0769
Merge branch 'development' into feat/publish-single-chat-tests
irinakartun Sep 24, 2024
0e0e5fc
Merge branch 'development' into feat/publish-single-chat-tests
irinakartun Sep 26, 2024
1c20f9a
feat/publish-single-chat-tests: fixed folders expand
irinakartun Sep 26, 2024
04a1a6a
feat/marketplace: fixed test
irinakartun Sep 27, 2024
c2ccfe5
Merge branch 'development' into feat/publish-single-chat-tests
irinakartun Sep 27, 2024
d3579b6
Merge branch 'development' of github.com:epam/ai-dial-chat into feat/…
irinakartun Sep 27, 2024
79f9af7
feat/publish-single-chat-tests: removed not used const
irinakartun Sep 27, 2024
fcd4835
Merge branch 'development' into feat/publish-single-chat-tests
irinakartun Sep 27, 2024
9ce531f
Merge branch 'development' into feat/publish-single-chat-tests
irinakartun Sep 30, 2024
c6e9a25
feat/publish-single-chat-tests: added menu verification into existent…
irinakartun Sep 30, 2024
c6a75bd
Merge remote-tracking branch 'origin/feat/publish-single-chat-tests' …
irinakartun Sep 30, 2024
d76b04b
feat/publish-single-chat-tests: formatted
irinakartun Sep 30, 2024
b3ca56e
Merge branch 'development' into feat/publish-single-chat-tests
irinakartun Oct 2, 2024
a5a8fbb
Merge branch 'development' into feat/publish-single-chat-tests
irinakartun Oct 2, 2024
2d38208
Merge branch 'development' into feat/publish-single-chat-tests
irinakartun Oct 2, 2024
ccf7f65
Merge branch 'development' into feat/publish-single-chat-tests
irinakartun Oct 2, 2024
edc4939
Merge branch 'development' into feat/publish-single-chat-tests
irinakartun Oct 2, 2024
e0cb3ba
Merge branch 'development' of github.com:epam/ai-dial-chat into feat/…
irinakartun Oct 2, 2024
ac4006e
Merge branch 'development' into feat/publish-single-chat-tests
irinakartun Oct 2, 2024
f4777e7
Merge branch 'development' into feat/publish-single-chat-tests
irinakartun Oct 2, 2024
2ca783c
Merge branch 'development' into feat/publish-single-chat-tests
irinakartun Oct 2, 2024
f86b4d6
feat/publish-single-chat-tests: fixed import
irinakartun Oct 2, 2024
2db98cc
Merge remote-tracking branch 'origin/feat/publish-single-chat-tests' …
irinakartun Oct 2, 2024
5946814
Merge branch 'development' into feat/publish-single-chat-tests
irinakartun Oct 2, 2024
9559fe4
feat/publish-single-chat-tests: fixed comments
irinakartun Oct 3, 2024
03f776d
feat/publish-single-chat-tests: fixed import
irinakartun Oct 3, 2024
568febb
feat/publish-single-chat-tests: fixed imports
irinakartun Oct 3, 2024
d41d695
Merge branch 'development' into feat/publish-single-chat-tests
irinakartun Oct 3, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion apps/chat-e2e/src/assertions/conversationAssertion.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,10 @@ export class ConversationAssertion extends SideBarEntityAssertion<ConversationsT
const conversationBackgroundColor =
await this.sideBarEntitiesTree.getEntityBackgroundColor(conversationName);
expect
.soft(conversationBackgroundColor, 'Conversation is selected')
.soft(
conversationBackgroundColor,
ExpectedMessages.conversationIsSelected,
)
.toBe(Colors.backgroundAccentSecondary);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import { PublishEntityAssertion } from '@/src/assertions/publishEntityAssertion';
import { ConversationsToApproveTree } from '@/src/ui/webElements/entityTree';

export class ConversationToApproveAssertion extends PublishEntityAssertion<ConversationsToApproveTree> {}
nartovm marked this conversation as resolved.
Show resolved Hide resolved
130 changes: 130 additions & 0 deletions apps/chat-e2e/src/assertions/entityTreeAssertion.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
import {
CheckboxState,
ElementState,
ExpectedMessages,
TreeEntity,
} from '@/src/testData';
import { Styles } from '@/src/ui/domData';
import { EntitiesTree } from '@/src/ui/webElements/entityTree';
import { expect } from '@playwright/test';

export class EntityTreeAssertion<T extends EntitiesTree> {
readonly treeEntities: T;

constructor(treeEntities: T) {
this.treeEntities = treeEntities;
}

public async assertEntityState(
entity: TreeEntity,
expectedState: ElementState,
) {
const entityLocator = this.treeEntities.getEntityByName(
entity.name,
entity.index,
);
expectedState === 'visible'
? await expect
.soft(entityLocator, ExpectedMessages.entityIsVisible)
.toBeVisible()
: await expect
.soft(entityLocator, ExpectedMessages.entityIsNotVisible)
.toBeHidden();
}

public async assertEntityCheckbox(
entity: TreeEntity,
expectedState: ElementState,
) {
const entityCheckboxLocator = this.treeEntities.getEntityCheckbox(
entity.name,
entity.index,
);
expectedState === 'visible'
? await expect
.soft(entityCheckboxLocator, ExpectedMessages.entityIsChecked)
.toBeVisible()
: await expect
.soft(entityCheckboxLocator, ExpectedMessages.entityIsNotChecked)
.toBeHidden();
}

public async assertEntityCheckboxState(
entity: TreeEntity,
expectedState: CheckboxState,
) {
const message =
expectedState === CheckboxState.checked
? ExpectedMessages.entityIsChecked
: ExpectedMessages.entityIsNotChecked;
expect
.soft(
await this.treeEntities.getEntityCheckboxState(
entity.name,
entity.index,
),
message,
)
.toBe(expectedState);
}

public async assertEntityBackgroundColor(
entity: TreeEntity,
expectedColor: string,
) {
const entityBackgroundColor =
await this.treeEntities.getEntityBackgroundColor(
entity.name,
entity.index,
);
expect
.soft(
entityBackgroundColor,
ExpectedMessages.entityBackgroundColorIsValid,
)
.toBe(expectedColor);
}

public async assertEntityCheckboxColor(
entity: TreeEntity,
expectedColor: string,
) {
const checkboxElement = this.treeEntities.getEntityCheckboxElement(
entity.name,
entity.index,
);
const color = await checkboxElement.getComputedStyleProperty(Styles.color);
expect
.soft(color[0], ExpectedMessages.iconColorIsValid)
.toBe(expectedColor);
}

public async assertEntityCheckboxBorderColors(
entity: TreeEntity,
expectedColor: string,
) {
const checkboxElement = this.treeEntities.getEntityCheckboxElement(
entity.name,
entity.index,
);
const borderColors = await checkboxElement.getAllBorderColors();

Object.values(borderColors).forEach((borders) => {
borders.forEach((borderColor) => {
expect
.soft(borderColor, ExpectedMessages.borderColorsAreValid)
.toBe(expectedColor);
});
});
}

public async assertEntityIcon(entity: TreeEntity, expectedIcon: string) {
const entityIcon = await this.treeEntities.getEntityIcon(
entity.name,
entity.index,
);
expect
.soft(entityIcon, ExpectedMessages.entityIconIsValid)
.toBe(expectedIcon);
}
}
6 changes: 3 additions & 3 deletions apps/chat-e2e/src/assertions/folderAssertion.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ import { Folders } from '@/src/ui/webElements/entityTree';
import { ThemesUtil } from '@/src/utils/themesUtil';
import { expect } from '@playwright/test';

export class FolderAssertion {
readonly folder: Folders;
export class FolderAssertion<T extends Folders> {
readonly folder: T;

constructor(folder: Folders) {
constructor(folder: T) {
this.folder = folder;
}

Expand Down
33 changes: 33 additions & 0 deletions apps/chat-e2e/src/assertions/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
export * from './api/apiAssertion';
export * from './api/shareApiAssertion';

export * from './accountSettingsAssertion';
export * from './chatAssertion';
export * from './chatHeaderAssertion';
export * from './chatMessagesAssertion';
export * from './confirmationDialogAssertion';
export * from './conversationAssertion';
export * from './conversationToApproveAssertion';
export * from './downloadAssertion';
export * from './entitySettingAssertion';
export * from './entityTreeAssertion';
export * from './errorToastAssertion';
export * from './folderAssertion';
export * from './footerAssertion';
export * from './menuAssertion';
export * from './organizationConversationAssertion';
export * from './playbackAssertion';
export * from './promptAssertion';
export * from './promptListAssertion';
export * from './promptModalAssertion';
export * from './publishEntityAssertion';
export * from './publishingApprovalModalAssertion';
export * from './publishingRequestModalAssertion';
export * from './recentEntitiesAssertion';
export * from './sendMessageAssertion';
export * from './sharedPromptPreviewModalAssertion';
export * from './sharedWithMePromptsAssertion';
export * from './shareModalAssertion';
export * from './sideBarAssertion';
export * from './tooltipAssertion';
export * from './variableModalAssertion';
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import { SideBarEntityAssertion } from '@/src/assertions/sideBarEntityAssertion';
import { OrganizationConversationsTree } from '@/src/ui/webElements/entityTree';

export class OrganizationConversationAssertion extends SideBarEntityAssertion<OrganizationConversationsTree> {}
irinakartun marked this conversation as resolved.
Show resolved Hide resolved
27 changes: 27 additions & 0 deletions apps/chat-e2e/src/assertions/publishEntityAssertion.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import { EntityTreeAssertion } from '@/src/assertions/entityTreeAssertion';
import { PublishingExpectedMessages, TreeEntity } from '@/src/testData';
import { PublishEntitiesTree } from '@/src/ui/webElements/entityTree';
import { expect } from '@playwright/test';

export class PublishEntityAssertion<
T extends PublishEntitiesTree,
> extends EntityTreeAssertion<PublishEntitiesTree> {
readonly publishEntities: T;

constructor(publishEntities: T) {
super(publishEntities);
this.publishEntities = publishEntities;
}

public async assertEntityVersion(
entity: TreeEntity,
expectedVersion: string,
) {
await expect
.soft(
this.publishEntities.getEntityVersion(entity.name, entity.index),
PublishingExpectedMessages.entityVersionIsValid,
)
.toHaveText(expectedVersion);
}
}
118 changes: 118 additions & 0 deletions apps/chat-e2e/src/assertions/publishingApprovalModalAssertion.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
import { Publication } from '@/chat/types/publication';
import {
ElementState,
ExpectedConstants,
ExpectedMessages,
PublishingExpectedMessages,
} from '@/src/testData';
import { BaseElement, PublishingApprovalModal } from '@/src/ui/webElements';
import { DateUtil } from '@/src/utils';
import { expect } from '@playwright/test';

export class PublishingApprovalModalAssertion {
readonly publishingApprovalModal: PublishingApprovalModal;

constructor(publishingApprovalModal: PublishingApprovalModal) {
this.publishingApprovalModal = publishingApprovalModal;
}

public async assertPublishingApprovalModalState(expectedState: ElementState) {
expectedState === 'visible'
? await expect
.soft(
this.publishingApprovalModal.getElementLocator(),
ExpectedMessages.modalWindowIsOpened,
)
.toBeVisible()
: await expect
.soft(
this.publishingApprovalModal.getElementLocator(),
ExpectedMessages.modalWindowIsClosed,
)
.toBeHidden();
}

public async assertPublishToLabelState(expectedState: ElementState) {
await this.assertElementState(
this.publishingApprovalModal.publishToPathLabel,
expectedState,
ExpectedConstants.publishToLabel,
);
}

public async assertPublishToPath(expectedPath: string) {
expect
.soft(
await this.publishingApprovalModal.publishToPath.getElementInnerContent(),
PublishingExpectedMessages.publishToPathIsValid,
)
.toBe(expectedPath);
}

public async assertRequestCreationDate(publicationRequest: Publication) {
expect
.soft(
await this.publishingApprovalModal.publishDate.getElementInnerContent(),
PublishingExpectedMessages.publishToPathIsValid,
)
.toBe(
DateUtil.convertUnixTimestampToLocalDate(publicationRequest.createdAt),
);
}

public async assertRequestCreationDateLabelState(
expectedState: ElementState,
) {
await this.assertElementState(
this.publishingApprovalModal.publishDateLabel,
expectedState,
ExpectedConstants.requestCreationDateLabel,
);
}

public async assertAllowAccessLabelState(expectedState: ElementState) {
await this.assertElementState(
this.publishingApprovalModal.allowAccessLabel,
expectedState,
ExpectedConstants.allowAccessLabel,
);
}

public async assertNoChangesLabelState(expectedState: ElementState) {
await this.assertElementState(
this.publishingApprovalModal.noChangesLabel,
expectedState,
ExpectedConstants.noChangesLabel,
);
}

public async assertAvailabilityLabelState(expectedState: ElementState) {
await this.assertElementState(
this.publishingApprovalModal.availabilityLabel,
expectedState,
ExpectedConstants.availabilityLabel,
);
}

public async assertElementState(
element: BaseElement,
expectedState: ElementState,
expectedText?: string,
) {
const elementLocator = element.getElementLocator();
if (expectedState === 'visible') {
await expect
.soft(elementLocator, ExpectedMessages.entityIsVisible)
.toBeVisible();
if (expectedText !== undefined) {
await expect
.soft(elementLocator, ExpectedMessages.fieldLabelIsValid)
.toHaveText(expectedText);
}
} else {
await expect
.soft(elementLocator, ExpectedMessages.entityIsVisible)
.toBeHidden();
}
}
}
Loading
Loading