Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
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
52 changes: 52 additions & 0 deletions integration-tests/js-compute/fixtures/app/src/cache-simple.js
Original file line number Diff line number Diff line change
Expand Up @@ -2210,4 +2210,56 @@ async function simpleCacheEntryInterfaceTests() {
}
},
);
routes.set(
'/simple-cache/getOrSet/transaction-race',
async () => {
const key = String(Math.random());
let resolve1;
const signal1 = new Promise((resolve) => {
resolve1 = resolve;
});
let resolve2;
const signal2 = new Promise((resolve) => {
resolve2 = resolve;
});
let resolve3;
const signal3 = new Promise((resolve) => {
resolve3 = resolve;
});
let resolve4;
const signal4 = new Promise((resolve) => {
resolve4 = resolve;
});


const set1 = (async () => {
try {
await SimpleCache.getOrSet(key, async () => {
resolve1(true);
await signal2;
throw "uh oh";
});
} catch {
resolve3(true);
await signal4;
}
})();
await signal1;
const set2 = SimpleCache.getOrSet(key, async () => {
return {
value: key,
ttl: 10,
};
});
await new Promise((resolve) => {
setTimeout(resolve, 10000);
});
resolve2(true);
await signal3;
await set2;
resolve4(true);
await signal4;
await set1;
}
);
}
3 changes: 3 additions & 0 deletions integration-tests/js-compute/fixtures/app/tests.json
Original file line number Diff line number Diff line change
Expand Up @@ -452,6 +452,9 @@
"flake": true,
"environments": ["compute"]
},
"GET /simple-cache/getOrSet/transaction-race": {
"flake": true
},
"GET /client/requestId": {},
"GET /client/tlsJA3MD5": {},
"GET /client/tlsClientHello": {},
Expand Down
Loading