Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitf5c0719

Browse files
committed
add latenciesLoaded to unit tests
1 parent93bc6b3 commitf5c0719

File tree

2 files changed

+15
-9
lines changed

2 files changed

+15
-9
lines changed

‎site/src/contexts/ProxyContext.test.tsx‎

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ describe("ProxyContextGetURLs", () => {
119119
preferredPathAppURL,
120120
preferredWildcardHostname,
121121
)=>{
122-
constpreferred=getPreferredProxy(regions,selected,latencies);
122+
constpreferred=getPreferredProxy(regions,selected,latencies,true);
123123
expect(preferred.preferredPathAppURL).toBe(preferredPathAppURL);
124124
expect(preferred.preferredWildcardHostname).toBe(
125125
preferredWildcardHostname,
@@ -142,10 +142,11 @@ const TestingComponent = () => {
142142

143143
// TestingScreen just mounts some components that we can check in the unit test.
144144
constTestingScreen=()=>{
145-
const{ proxy, userProxy, isFetched, isLoading, clearProxy, setProxy}=
145+
const{ proxy, userProxy, isFetched, isLoading,latenciesLoaded,clearProxy, setProxy}=
146146
useProxy();
147147
return(
148148
<>
149+
<divdata-testid="latenciesLoaded"title={latenciesLoaded.toString()}></div>
149150
<divdata-testid="isFetched"title={isFetched.toString()}></div>
150151
<divdata-testid="isLoading"title={isLoading.toString()}></div>
151152
<divdata-testid="preferredProxy"title={proxy.proxy?.id}></div>
@@ -210,7 +211,6 @@ describe("ProxyContextSelection", () => {
210211
};
211212

212213
it.each([
213-
// Not latency behavior
214214
[
215215
"empty",
216216
{
@@ -366,6 +366,10 @@ describe("ProxyContextSelection", () => {
366366
TestingComponent();
367367
awaitwaitForLoaderToBeRemoved();
368368

369+
awaitscreen.findByTestId("latenciesLoaded").then((x)=>{
370+
expect(x.title).toBe("true");
371+
});
372+
369373
if(afterLoad){
370374
awaitafterLoad();
371375
}

‎site/src/contexts/ProxyContext.tsx‎

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,9 @@ export interface ProxyContextValue {
5454
// then the latency has not been fetched yet. Calculations happen async for each proxy in the list.
5555
// Refer to the returned report for a given proxy for more information.
5656
proxyLatencies:ProxyLatencies;
57+
// latenciesLoaded is true when the latencies have been initially loaded.
58+
// Once set to true, it will not be set to false again.
59+
latenciesLoaded:boolean;
5760
// refetchProxyLatencies will trigger refreshing of the proxy latencies. By default the latencies
5861
// are loaded once.
5962
refetchProxyLatencies:()=>Date;
@@ -189,6 +192,7 @@ export const ProxyProvider: FC<PropsWithChildren> = ({ children }) => {
189192
userProxy:userSavedProxy,
190193
proxy:proxy,
191194
proxies:proxiesResp,
195+
latenciesLoaded:latenciesLoaded,
192196
isLoading:proxiesLoading,
193197
isFetched:proxiesFetched,
194198
error:proxiesError,
@@ -246,16 +250,14 @@ export const getPreferredProxy = (
246250

247251
// If no proxy is selected, or the selected proxy is unhealthy default to the primary proxy.
248252
if(!selectedProxy||!selectedProxy.healthy){
253+
// Default to the primary proxy
254+
selectedProxy=proxies.find((proxy)=>proxy.name==="primary");
255+
249256
// If we have latencies, then attempt to use the best proxy by latency instead.
250257
constbest=selectByLatency(proxies,latencies);
251-
if(autoSelectBasedOnLatency&&best){
258+
if(autoSelectBasedOnLatency&&best!==undefined){
252259
selectedProxy=best;
253260
}
254-
255-
// Use the primary proxy if we don't have any other options.
256-
if(!selectedProxy){
257-
selectedProxy=proxies.find((proxy)=>proxy.name==="primary");
258-
}
259261
}
260262

261263
returncomputeUsableURLS(selectedProxy);

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp