57 lines
1.4 KiB
TypeScript
57 lines
1.4 KiB
TypeScript
|
// good for diagnostic purposes
|
||
|
|
||
|
import { RequestCluster } from '../../request-cluster';
|
||
|
import { DataLocation } from '../../stolen-data-entry';
|
||
|
|
||
|
export type FakeRequestClusterData = {
|
||
|
id: string;
|
||
|
hasCookies: boolean;
|
||
|
hasMarkedCookies: boolean;
|
||
|
hasMarks: boolean;
|
||
|
exposesOriginWhere: DataLocation[];
|
||
|
exposesOrigin: boolean;
|
||
|
};
|
||
|
|
||
|
export function getFakeClusterData(
|
||
|
clusters: Record<string, RequestCluster>
|
||
|
): Record<string, FakeRequestClusterData> {
|
||
|
return Object.fromEntries(
|
||
|
Object.entries(clusters).map(([key, cluster]) => [key, cluster.makeDataForFake()])
|
||
|
);
|
||
|
}
|
||
|
|
||
|
export function makeFakeClusters(
|
||
|
fake_clusters_data: Record<string, FakeRequestClusterData>
|
||
|
): Record<string, FakeCluster> {
|
||
|
return Object.fromEntries(
|
||
|
Object.entries(fake_clusters_data).map(([key, cluster_data]) => [
|
||
|
key,
|
||
|
new FakeCluster(cluster_data),
|
||
|
])
|
||
|
);
|
||
|
}
|
||
|
|
||
|
export class FakeCluster extends RequestCluster {
|
||
|
constructor(public data: FakeRequestClusterData) {
|
||
|
super(data.id);
|
||
|
|
||
|
for (const key of [
|
||
|
'hasCookies',
|
||
|
'hasMarkedCookies',
|
||
|
'hasMarks',
|
||
|
'exposesOriginWhere',
|
||
|
'exposesOrigin',
|
||
|
]) {
|
||
|
//@ts-ignore
|
||
|
this[key] = () => {
|
||
|
//@ts-ignore
|
||
|
return this.data[key];
|
||
|
};
|
||
|
}
|
||
|
}
|
||
|
|
||
|
hasCookies() {
|
||
|
return this.data.hasCookies;
|
||
|
}
|
||
|
}
|