Skip to content

Commit

Permalink
chore: Legal button on SettingsView (#6053)
Browse files Browse the repository at this point in the history
Co-authored-by: Diego Mello <[email protected]>
  • Loading branch information
OtavioStasiak and diegolmello authored Dec 16, 2024
1 parent f9d1ba2 commit 523b8a2
Show file tree
Hide file tree
Showing 7 changed files with 53 additions and 3 deletions.
3 changes: 3 additions & 0 deletions app/stacks/InsideStack.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ import AddExistingChannelView from '../views/AddExistingChannelView';
import SelectListView from '../views/SelectListView';
import DiscussionsView from '../views/DiscussionsView';
import ChangeAvatarView from '../views/ChangeAvatarView';
import LegalView from '../views/LegalView';
import {
AdminPanelStackParamList,
ChatsStackParamList,
Expand Down Expand Up @@ -188,6 +189,8 @@ const SettingsStackNavigator = () => {
<SettingsStack.Screen name='DefaultBrowserView' component={DefaultBrowserView} />
<SettingsStack.Screen name='MediaAutoDownloadView' component={MediaAutoDownloadView} />
<SettingsStack.Screen name='GetHelpView' component={GetHelpView} />
{/* @ts-ignore */}
<SettingsStack.Screen name='LegalView' component={LegalView} />
<SettingsStack.Screen
name='ScreenLockConfigView'
// @ts-ignore
Expand Down
3 changes: 3 additions & 0 deletions app/stacks/MasterDetailStack/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ import NewMessageView from '../../views/NewMessageView';
import CreateChannelView from '../../views/CreateChannelView';
import UserPreferencesView from '../../views/UserPreferencesView';
import UserNotificationPrefView from '../../views/UserNotificationPreferencesView';
import LegalView from '../../views/LegalView';
import SecurityPrivacyView from '../../views/SecurityPrivacyView';
import MediaAutoDownloadView from '../../views/MediaAutoDownloadView';
import E2EEncryptionSecurityView from '../../views/E2EEncryptionSecurityView';
Expand Down Expand Up @@ -168,6 +169,8 @@ const ModalStackNavigator = React.memo(({ navigation }: INavigation) => {
options={props => ReadReceiptsView.navigationOptions!({ ...props, isMasterDetail: true })}
/>
<ModalStack.Screen name='SettingsView' component={SettingsView} />
{/* @ts-ignore */}
<ModalStack.Screen name='LegalView' component={LegalView} />
<ModalStack.Screen name='LanguageView' component={LanguageView} />
<ModalStack.Screen name='ThemeView' component={ThemeView} />
<ModalStack.Screen name='DefaultBrowserView' component={DefaultBrowserView} />
Expand Down
1 change: 1 addition & 0 deletions app/stacks/MasterDetailStack/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,7 @@ export type ModalStackParamList = {
MediaAutoDownloadView: undefined;
E2EEncryptionSecurityView: undefined;
PushTroubleshootView: undefined;
LegalView: undefined;
SupportedVersionsWarning: {
showCloseButton?: boolean;
};
Expand Down
1 change: 1 addition & 0 deletions app/stacks/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,7 @@ export type ProfileStackParamList = {
};

export type SettingsStackParamList = {
LegalView: undefined;
SettingsView: undefined;
SecurityPrivacyView: undefined;
E2EEncryptionSecurityView: undefined;
Expand Down
4 changes: 2 additions & 2 deletions app/views/LegalView.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import React, { useEffect } from 'react';
import React, { useLayoutEffect } from 'react';
import { useSelector } from 'react-redux';

import I18n from '../i18n';
Expand All @@ -18,7 +18,7 @@ const LegalView = ({ navigation }: ILegalViewProps): React.ReactElement => {
const server = useSelector((state: IApplicationState) => state.server.server);
const { theme } = useTheme();

useEffect(() => {
useLayoutEffect(() => {
navigation.setOptions({
title: I18n.t('Legal')
});
Expand Down
8 changes: 8 additions & 0 deletions app/views/SettingsView/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -259,6 +259,14 @@ const SettingsView = (): React.ReactElement => {
left={() => <List.Icon name='arrow-forward' />}
/>
<List.Separator />
<List.Item
title='Legal'
showActionIndicator
onPress={() => navigateToScreen('LegalView')}
testID='settings-view-legal'
left={() => <List.Icon name='book' />}
/>
<List.Separator />
<List.Item
title='Contact_us'
onPress={sendEmail}
Expand Down
36 changes: 35 additions & 1 deletion e2e/tests/assorted/04-setting.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,10 +65,14 @@ describe('Settings screen', () => {
await expect(element(by.id('settings-view-media-auto-download'))).toExist();
});

it('should have licence', async () => {
it('should have license', async () => {
await expect(element(by.id('settings-view-license'))).toExist();
});

it('should have legal', async () => {
await expect(element(by.id('settings-view-legal'))).toExist();
});

it('should have version no', async () => {
await expect(element(by.id('settings-view-version'))).toExist();
});
Expand Down Expand Up @@ -106,5 +110,35 @@ describe('Settings screen', () => {
.toExist()
.withTimeout(10000);
});

describe('Legal button', () => {
it('should navigate to legalview', async () => {
await element(by.id('rooms-list-view-sidebar')).tap();
await waitFor(element(by.id('sidebar-view')))
.toBeVisible()
.withTimeout(2000);
await waitFor(element(by.id('sidebar-settings')))
.toBeVisible()
.withTimeout(2000);
await element(by.id('sidebar-settings')).tap();
await waitFor(element(by.id('settings-view')))
.toBeVisible()
.withTimeout(2000);

await expect(element(by.id('settings-view-legal'))).toExist();
await element(by.id('settings-view-legal')).tap();
await waitFor(element(by.id('legal-view')))
.toBeVisible()
.withTimeout(4000);
});

it('should have terms of service button', async () => {
await expect(element(by.id('legal-terms-button'))).toBeVisible();
});

it('should have privacy policy button', async () => {
await expect(element(by.id('legal-privacy-button'))).toBeVisible();
});
});
});
});

0 comments on commit 523b8a2

Please sign in to comment.