This repository was archived by the owner on Sep 11, 2024. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 806
TAC: Release Announcement #12380
Merged
Merged
TAC: Release Announcement #12380
Changes from 23 commits
Commits
Show all changes
27 commits
Select commit
Hold shift + click to select a range
17b5ebe
WIP
florianduros 3ad73e0
Store the release announcements in the account settings
florianduros 75e285c
Update TAC release announcement description
florianduros 76f2a23
Fix settings content comparison
florianduros caeccb8
Add logging in case of failure
florianduros 3a0d26e
Watch settings changes
florianduros 3cb4220
I add release announcement settings to disable it
florianduros d8a90ef
Disable release announcement in e2e test
florianduros ef3ab01
Add release announcement in e2e test
florianduros ac2156d
Add tests for ReleaseAnnouncementStore.ts
florianduros a27a95c
Merge branch 'develop' into florianduros/tac/release-announcement
florianduros c171692
Update compound-web to `3.3.0`
florianduros 009929c
Update TAC tests
florianduros c06f913
Update Labs tests
florianduros 9ff18d5
Nits
florianduros f21f541
Add test for ReleaseAnnouncement.tsx
florianduros 5ecabcd
Update `@vector-im/compound-web`
florianduros 4866fd1
Merge branch 'develop' into florianduros/tac/release-announcement
florianduros c50a415
Add playwright snapshot
florianduros 53be22c
Delete false playwright screenshot
florianduros 2f24cc9
Wait for EW to be displayed after reload
florianduros 0309486
Add screenshot
MidhunSureshR 7953ce0
Clean util file
florianduros 0465e5c
Renaming and comments fixing
florianduros fc8d80d
Use second store instead of looking in the store.
florianduros 568cb07
Merge branch 'develop' into florianduros/tac/release-announcement
florianduros 8c515e8
Merge branch 'develop' into florianduros/tac/release-announcement
florianduros File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,77 @@ | ||
| /* | ||
| * | ||
| * Copyright 2024 The Matrix.org Foundation C.I.C. | ||
| * | ||
| * 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 { Page } from "@playwright/test"; | ||
|
|
||
| import { test as base, expect } from "../../element-web-test"; | ||
|
|
||
| /** | ||
| * Set up for release announcement tests. | ||
| */ | ||
| export const test = base.extend<{ | ||
| util: Helpers; | ||
| }>({ | ||
| displayName: "Alice", | ||
| botCreateOpts: { displayName: "Other User" }, | ||
|
|
||
| util: async ({ page, app, bot }, use) => { | ||
| await use(new Helpers(page)); | ||
| }, | ||
| }); | ||
|
|
||
| export class Helpers { | ||
| constructor(private page: Page) {} | ||
|
|
||
| /** | ||
| * Get the release announcement with the given name. | ||
| * @param name | ||
| * @private | ||
| */ | ||
| private getReleaseAnnouncement(name: string) { | ||
| return this.page.getByRole("dialog", { name }); | ||
| } | ||
|
|
||
| /** | ||
| * Assert that the release announcement with the given name is visible. | ||
| * @param name | ||
| */ | ||
| async assertReleaseAnnouncementIsVisible(name: string) { | ||
| await expect(this.getReleaseAnnouncement(name)).toBeVisible(); | ||
| await expect(this.page).toMatchScreenshot(`release-announcement-${name}.png`); | ||
| } | ||
|
|
||
| /** | ||
| * Assert that the release announcement with the given name is not visible. | ||
| * @param name | ||
| */ | ||
| assertReleaseAnnouncementIsNotVisible(name: string) { | ||
| return expect(this.getReleaseAnnouncement(name)).not.toBeVisible(); | ||
| } | ||
|
|
||
| /** | ||
| * Mark the release announcement with the given name as read. | ||
| * If the release announcement is not visible, this will throw an error. | ||
| * @param name | ||
| */ | ||
| async markReleaseAnnouncementAsRead(name: string) { | ||
| const dialog = this.getReleaseAnnouncement(name); | ||
| await dialog.getByRole("button", { name: "Ok" }).click(); | ||
| } | ||
| } | ||
|
|
||
| export { expect }; |
44 changes: 44 additions & 0 deletions
44
playwright/e2e/release-announcement/releaseAnnouncement.spec.ts
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,44 @@ | ||
| /* | ||
| * | ||
| * Copyright 2024 The Matrix.org Foundation C.I.C. | ||
| * | ||
| * 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 { test, expect } from "./"; | ||
|
|
||
| test.describe("Release announcement", () => { | ||
| test.use({ | ||
| config: { | ||
| features: { | ||
| feature_release_announcement: true, | ||
| }, | ||
| }, | ||
| labsFlags: ["threadsActivityCentre"], | ||
| }); | ||
|
|
||
| test("should display the release announcement process", async ({ page, app, util }) => { | ||
| // The TAC release announcement should be displayed | ||
| await util.assertReleaseAnnouncementIsVisible("Threads Activity Centre"); | ||
| // Hide the release announcement | ||
| await util.markReleaseAnnouncementAsRead("Threads Activity Centre"); | ||
| await util.assertReleaseAnnouncementIsNotVisible("Threads Activity Centre"); | ||
|
|
||
| await page.reload(); | ||
| // Wait for EW to load | ||
| await expect(page.getByRole("navigation", { name: "Spaces" })).toBeVisible(); | ||
| // Check that once the release announcement has been marked as viewed, it does not appear again | ||
| await util.assertReleaseAnnouncementIsNotVisible("Threads Activity Centre"); | ||
| }); | ||
| }); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file added
BIN
+61.2 KB
...easeAnnouncement.spec.ts/release-announcement-Threads-Activity-Centre-linux.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,54 @@ | ||
| /* | ||
| * | ||
| * Copyright 2024 The Matrix.org Foundation C.I.C. | ||
| * | ||
| * 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 React, { ComponentProps, JSX, PropsWithChildren } from "react"; | ||
| import { ReleaseAnnouncement as ReleaseAnnouncementCompound } from "@vector-im/compound-web"; | ||
|
|
||
| import { ReleaseAnnouncementStore, Features } from "../../stores/ReleaseAnnouncementStore"; | ||
| import { useIsReleaseAnnouncementEnabled } from "../../hooks/useReleaseAnnouncement"; | ||
|
|
||
| interface ReleaseAnnouncementProps | ||
| extends Omit<ComponentProps<typeof ReleaseAnnouncementCompound>, "open" | "onClick"> { | ||
| feature: Features; | ||
| } | ||
|
|
||
| /** | ||
| * Display a release announcement component around the children | ||
| * Wrapper gluing the release announcement compound and the ReleaseAnnouncementStore | ||
| * @param feature - the feature to announce, should be listed in {@link Features} | ||
| * @param children | ||
| * @param props | ||
| * @constructor | ||
| */ | ||
| export function ReleaseAnnouncement({ | ||
| feature, | ||
| children, | ||
| ...props | ||
| }: PropsWithChildren<ReleaseAnnouncementProps>): JSX.Element { | ||
| const enabled = useIsReleaseAnnouncementEnabled(feature); | ||
|
|
||
| return ( | ||
| <ReleaseAnnouncementCompound | ||
| open={enabled} | ||
| onClick={() => ReleaseAnnouncementStore.instance.nextReleaseAnnouncement()} | ||
| {...props} | ||
| > | ||
| {children} | ||
| </ReleaseAnnouncementCompound> | ||
| ); | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,32 @@ | ||
| /* | ||
| * | ||
| * Copyright 2024 The Matrix.org Foundation C.I.C. | ||
| * | ||
| * 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 { useTypedEventEmitterState } from "./useEventEmitter"; | ||
| import { Features, ReleaseAnnouncementStore } from "../stores/ReleaseAnnouncementStore"; | ||
|
|
||
| /** | ||
| * Return true if the release announcement of the given feature is enabled | ||
| * @param feature | ||
| */ | ||
| export function useIsReleaseAnnouncementEnabled(feature: Features): boolean { | ||
|
florianduros marked this conversation as resolved.
Outdated
|
||
| return useTypedEventEmitterState( | ||
| ReleaseAnnouncementStore.instance, | ||
| "releaseAnnouncementChanged", | ||
| () => ReleaseAnnouncementStore.instance.getReleaseAnnouncement() === feature, | ||
| ); | ||
| } | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.