Skip to content

Commit 97e49ac

Browse files
revert: floating banner & low connectivity (#9254) (#9262)
* Revert "feat(MM-65625): low connectivity feature toggle in advance settings (#9191)" This reverts commit c872e2e. * Revert "feat(MM-65145): Network connectivity/performance observer (#9173)" This reverts commit 597e03d. * Revert "feat(MM-65625): floating banner (#9162)" This reverts commit 5887c3a. * Revert "feat(MM-65625): enhance navigation overlay management (#9165)" This reverts commit f1554f0. * revert advanced.test.tsx changes (cherry picked from commit 72b97f6) Co-authored-by: Rahim Rahman <[email protected]>
1 parent 28a9389 commit 97e49ac

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+226
-9184
lines changed

app/actions/app/global.test.ts

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
// See LICENSE.txt for license information.
33

44
import {Tutorial} from '@constants';
5-
import {GLOBAL_IDENTIFIERS} from '@constants/database';
65
import DatabaseManager from '@database/manager';
76
import {
87
getDeviceToken,
@@ -34,7 +33,6 @@ import {
3433
removePushDisabledInServerAcknowledged,
3534
storeScheduledPostTutorial,
3635
storeScheduledPostsListTutorial,
37-
storeLowConnectivityMonitor,
3836
} from './global';
3937

4038
const serverUrl = 'server.test.com';
@@ -205,17 +203,4 @@ describe('/app/actions/app/global', () => {
205203
records = await queryGlobalValue(Tutorial.SCHEDULED_POSTS_LIST)?.fetch();
206204
expect(records?.[0]?.value).toBe(true);
207205
});
208-
209-
test('storeLowConnectivityMonitor', async () => {
210-
let records = await queryGlobalValue(GLOBAL_IDENTIFIERS.LOW_CONNECTIVITY_MONITOR)?.fetch();
211-
expect(records?.[0]?.value).toBeUndefined();
212-
213-
await storeLowConnectivityMonitor(true);
214-
records = await queryGlobalValue(GLOBAL_IDENTIFIERS.LOW_CONNECTIVITY_MONITOR)?.fetch();
215-
expect(records?.[0]?.value).toBe(true);
216-
217-
await storeLowConnectivityMonitor(false);
218-
records = await queryGlobalValue(GLOBAL_IDENTIFIERS.LOW_CONNECTIVITY_MONITOR)?.fetch();
219-
expect(records?.[0]?.value).toBe(false);
220-
});
221206
});

app/actions/app/global.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,3 @@ export const storePushDisabledInServerAcknowledged = async (serverUrl: string) =
9797
export const removePushDisabledInServerAcknowledged = async (serverUrl: string) => {
9898
return storeGlobal(`${GLOBAL_IDENTIFIERS.PUSH_DISABLED_ACK}${serverUrl}`, null, false);
9999
};
100-
101-
export const storeLowConnectivityMonitor = async (enabled: boolean) => {
102-
return storeGlobal(GLOBAL_IDENTIFIERS.LOW_CONNECTIVITY_MONITOR, enabled, false);
103-
};

app/actions/local/thread.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import {getCurrentTeamId, getCurrentUserId, prepareCommonSystemValues, type Prep
1313
import {addChannelToTeamHistory, addTeamToTeamHistory} from '@queries/servers/team';
1414
import {getThreadById, prepareThreadsFromReceivedPosts, queryThreadsInTeam} from '@queries/servers/thread';
1515
import {getCurrentUser} from '@queries/servers/user';
16-
import {dismissAllModals, dismissAllModalsAndPopToRoot, dismissAllOverlaysWithExceptions, goToScreen} from '@screens/navigation';
16+
import {dismissAllModals, dismissAllModalsAndPopToRoot, dismissAllOverlays, goToScreen} from '@screens/navigation';
1717
import EphemeralStore from '@store/ephemeral_store';
1818
import NavigationStore from '@store/navigation_store';
1919
import {isTablet} from '@utils/helpers';
@@ -95,7 +95,7 @@ export const switchToThread = async (serverUrl: string, rootId: string, isFromNo
9595
if (isFromNotification) {
9696
if (currentThreadId && currentThreadId === rootId && NavigationStore.getScreensInStack().includes(Screens.THREAD)) {
9797
await dismissAllModals();
98-
await dismissAllOverlaysWithExceptions();
98+
await dismissAllOverlays();
9999
return {};
100100
}
101101

app/actions/remote/entry/common.test.ts

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,7 @@ jest.mock('@actions/remote/user');
3131
jest.mock('@actions/remote/post');
3232
jest.mock('@actions/remote/groups');
3333
jest.mock('@actions/remote/thread');
34-
jest.mock('@queries/app/global', () => {
35-
const {of: mockOf} = require('rxjs');
36-
return {
37-
getDeviceToken: jest.fn(),
38-
observeLowConnectivityMonitor: jest.fn(() => mockOf(true)),
39-
};
40-
});
34+
jest.mock('@queries/app/global');
4135
jest.mock('@queries/servers/system');
4236
jest.mock('@queries/servers/entry');
4337
jest.mock('@queries/servers/system', () => {

app/client/rest/tracking.test.ts

Lines changed: 0 additions & 117 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ import {DeviceEventEmitter} from 'react-native';
66

77
import LocalConfig from '@assets/config.json';
88
import {Events} from '@constants';
9-
import NetworkPerformanceManager from '@managers/network_performance_manager';
10-
import PerformanceMetricsManager from '@managers/performance_metrics_manager';
119
import test_helper from '@test/test_helper';
1210

1311
import * as ClientConstants from './constants';
@@ -64,18 +62,7 @@ jest.mock('@managers/performance_metrics_manager', () => ({
6462
collectNetworkRequestData: jest.fn(),
6563
}));
6664

67-
jest.mock('@managers/network_performance_manager', () => ({
68-
__esModule: true,
69-
default: {
70-
startRequestTracking: jest.fn(() => 'mock-request-id-123'),
71-
completeRequestTracking: jest.fn(),
72-
cancelRequestTracking: jest.fn(),
73-
},
74-
}));
75-
7665
describe('ClientTracking', () => {
77-
const mockedNPM = jest.mocked(NetworkPerformanceManager);
78-
const mockedPMM = jest.mocked(PerformanceMetricsManager);
7966
const apiClientMock = {
8067
baseUrl: 'https://example.com',
8168
get: jest.fn(),
@@ -890,109 +877,5 @@ describe('ClientTracking', () => {
890877
expect(client.requestHeaders[ClientConstants.HEADER_X_MATTERMOST_PREAUTH_SECRET]).toBeUndefined();
891878
});
892879
});
893-
894-
describe('Network Performance Tracking', () => {
895-
const createMockMetrics = (overrides = {}) => ({
896-
latency: 500,
897-
size: 1000,
898-
compressedSize: 500,
899-
startTime: Date.now(),
900-
endTime: Date.now() + 500,
901-
speedInMbps: 1,
902-
networkType: 'Wi-Fi',
903-
tlsCipherSuite: 'none',
904-
tlsVersion: 'none',
905-
isCached: false,
906-
httpVersion: 'h2',
907-
connectionTime: 0,
908-
...overrides,
909-
});
910-
911-
const mockSuccessResponse = (metrics = createMockMetrics()) => ({
912-
ok: true,
913-
data: {success: true},
914-
headers: {},
915-
metrics,
916-
});
917-
918-
const requestOptions = {
919-
method: 'GET',
920-
groupLabel: 'Cold Start' as RequestGroupLabel,
921-
};
922-
923-
afterEach(() => {
924-
jest.clearAllMocks();
925-
});
926-
927-
it('should call full tracking lifecycle', async () => {
928-
const mockMetrics = createMockMetrics();
929-
apiClientMock.get.mockResolvedValue(mockSuccessResponse(mockMetrics));
930-
931-
await client.doFetchWithTracking('https://example.com/api', requestOptions);
932-
933-
expect(mockedNPM.startRequestTracking).toHaveBeenCalledWith('https://example.com', 'https://example.com/api');
934-
expect(mockedNPM.completeRequestTracking).toHaveBeenCalledWith('https://example.com', 'mock-request-id-123', mockMetrics);
935-
});
936-
937-
it('should not call completeRequestTracking when response.metrics is undefined', async () => {
938-
apiClientMock.get.mockResolvedValue({
939-
ok: true,
940-
data: {success: true},
941-
headers: {},
942-
});
943-
944-
await client.doFetchWithTracking('https://example.com/api', requestOptions);
945-
946-
expect(mockedNPM.startRequestTracking).toHaveBeenCalledWith('https://example.com', 'https://example.com/api');
947-
expect(mockedNPM.completeRequestTracking).not.toHaveBeenCalled();
948-
});
949-
950-
it('should call tracking methods independently of CollectNetworkMetrics', async () => {
951-
LocalConfig.CollectNetworkMetrics = false;
952-
const mockMetrics = createMockMetrics();
953-
apiClientMock.get.mockResolvedValue(mockSuccessResponse(mockMetrics));
954-
955-
await client.doFetchWithTracking('https://example.com/api', requestOptions);
956-
957-
expect(mockedPMM.collectNetworkRequestData).not.toHaveBeenCalled();
958-
expect(mockedNPM.startRequestTracking).toHaveBeenCalledWith('https://example.com', 'https://example.com/api');
959-
expect(mockedNPM.completeRequestTracking).toHaveBeenCalledWith('https://example.com', 'mock-request-id-123', mockMetrics);
960-
});
961-
962-
it('should call tracking methods when both flags are enabled', async () => {
963-
LocalConfig.CollectNetworkMetrics = true;
964-
const mockMetrics = createMockMetrics();
965-
apiClientMock.get.mockResolvedValue(mockSuccessResponse(mockMetrics));
966-
967-
await client.doFetchWithTracking('https://example.com/api', requestOptions);
968-
969-
expect(mockedNPM.startRequestTracking).toHaveBeenCalledWith('https://example.com', 'https://example.com/api');
970-
expect(mockedNPM.completeRequestTracking).toHaveBeenCalledWith('https://example.com', 'mock-request-id-123', mockMetrics);
971-
});
972-
973-
it('should pass correct server URL to NetworkPerformanceManager', async () => {
974-
const customBaseUrl = 'https://custom-server.com';
975-
const customApiClient = {...apiClientMock, baseUrl: customBaseUrl};
976-
const customClient = new ClientTracking(customApiClient as unknown as APIClientInterface);
977-
const mockMetrics = createMockMetrics({latency: 300, size: 2000, compressedSize: 1000, speedInMbps: 2});
978-
979-
customApiClient.get.mockResolvedValue(mockSuccessResponse(mockMetrics));
980-
981-
await customClient.doFetchWithTracking('https://custom-server.com/api', requestOptions);
982-
983-
expect(mockedNPM.startRequestTracking).toHaveBeenCalledWith(customBaseUrl, 'https://custom-server.com/api');
984-
expect(mockedNPM.completeRequestTracking).toHaveBeenCalledWith(customBaseUrl, 'mock-request-id-123', mockMetrics);
985-
});
986-
987-
it('should call cancelRequestTracking when request fails', async () => {
988-
apiClientMock.get.mockRejectedValue(new Error('Request failed'));
989-
990-
await expect(client.doFetchWithTracking('https://example.com/api', requestOptions)).rejects.toThrow('Received invalid response from the server.');
991-
992-
expect(mockedNPM.startRequestTracking).toHaveBeenCalledWith('https://example.com', 'https://example.com/api');
993-
expect(mockedNPM.cancelRequestTracking).toHaveBeenCalledWith('https://example.com', 'mock-request-id-123');
994-
expect(mockedNPM.completeRequestTracking).not.toHaveBeenCalled();
995-
});
996-
});
997880
});
998881
/* eslint-enable max-lines */

app/client/rest/tracking.ts

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import {DeviceEventEmitter, Platform} from 'react-native';
77
import {CollectNetworkMetrics} from '@assets/config.json';
88
import {Events} from '@constants';
99
import {setServerCredentials} from '@init/credentials';
10-
import NetworkPerformanceManager from '@managers/network_performance_manager';
1110
import PerformanceMetricsManager from '@managers/performance_metrics_manager';
1211
import {NetworkRequestMetrics} from '@managers/performance_metrics_manager/constant';
1312
import {isErrorWithStatusCode} from '@utils/errors';
@@ -132,24 +131,6 @@ export default class ClientTracking {
132131
group.totalCompressedSize += metrics?.compressedSize ?? 0;
133132
}
134133

135-
startNetworkPerformanceTracking(url: string): string | undefined {
136-
return NetworkPerformanceManager.startRequestTracking(this.apiClient.baseUrl, url);
137-
}
138-
139-
completeNetworkPerformanceTracking(requestId: string | undefined, url: string, metrics: ClientResponseMetrics | undefined) {
140-
if (!requestId || !metrics) {
141-
return;
142-
}
143-
NetworkPerformanceManager.completeRequestTracking(this.apiClient.baseUrl, requestId, metrics);
144-
}
145-
146-
cancelNetworkPerformanceTracking(requestId: string | undefined) {
147-
if (!requestId) {
148-
return;
149-
}
150-
NetworkPerformanceManager.cancelRequestTracking(this.apiClient.baseUrl, requestId);
151-
}
152-
153134
getAverageLatency(groupLabel: RequestGroupLabel): number {
154135
const groupData = this.requestGroups.get(groupLabel);
155136
if (!groupData) {
@@ -402,13 +383,10 @@ export default class ClientTracking {
402383
this.incrementRequestCount(groupLabel);
403384
}
404385

405-
const performanceRequestId = this.startNetworkPerformanceTracking(url);
406-
407386
let response: ClientResponse;
408387
try {
409388
response = await request!(url, this.buildRequestOptions(options));
410389
} catch (error) {
411-
this.cancelNetworkPerformanceTracking(performanceRequestId);
412390
const response_error = error as ClientError;
413391
const status_code = isErrorWithStatusCode(error) ? error.status_code : undefined;
414392
throw new ClientError(this.apiClient.baseUrl, {
@@ -431,7 +409,6 @@ export default class ClientTracking {
431409
if (groupLabel && CollectNetworkMetrics) {
432410
this.trackRequest(groupLabel, url, response.metrics);
433411
}
434-
this.completeNetworkPerformanceTracking(performanceRequestId, url, response.metrics);
435412
const serverVersion = semverFromServerVersion(
436413
headers[ClientConstants.HEADER_X_VERSION_ID] || headers[ClientConstants.HEADER_X_VERSION_ID.toLowerCase()],
437414
);
@@ -458,6 +435,7 @@ export default class ClientTracking {
458435
server_error_id: response.data?.id as string,
459436
status_code: response.code,
460437
url,
438+
headers,
461439
});
462440
};
463441
}

app/components/banner/Banner.test.tsx

Lines changed: 0 additions & 113 deletions
This file was deleted.

0 commit comments

Comments
 (0)