Skip to content

Commit e441069

Browse files
feedback
1 parent 1e0cfac commit e441069

File tree

4 files changed

+23
-26
lines changed

4 files changed

+23
-26
lines changed

packages/dds/map/src/test/directoryOracle.ts

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,11 @@ import type {
1414
IValueChanged,
1515
} from "../interfaces.js";
1616

17+
interface OracleDir {
18+
keys: Map<string, unknown>;
19+
subdirs: Map<string, OracleDir>;
20+
}
21+
1722
/**
1823
* Oracle for directory
1924
* @internal
@@ -28,10 +33,10 @@ export class SharedDirectoryOracle {
2833
this.sharedDir.on("subDirectoryDeleted", this.onSubDirDeleted);
2934
this.sharedDir.on("containedValueChanged", this.onContainedValueChanged);
3035

31-
this.takeSnapshot(sharedDir);
36+
this.takeSnapshot();
3237
}
3338

34-
private takeSnapshot(dir: ISharedDirectory | IDirectory): void {
39+
private takeSnapshot(): void {
3540
for (const [k, v] of this.sharedDir.entries()) {
3641
this.model.set(k, v);
3742
}
@@ -55,8 +60,9 @@ export class SharedDirectoryOracle {
5560
);
5661
}
5762

63+
const workingDir = this.sharedDir.getWorkingDirectory(fullPath);
5864
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
59-
const newVal = this.sharedDir.get(fullPath);
65+
const newVal = workingDir?.get(key);
6066

6167
if (newVal === undefined) {
6268
// deletion
@@ -89,22 +95,13 @@ export class SharedDirectoryOracle {
8995
private readonly onContainedValueChanged = (
9096
changed: IValueChanged,
9197
local: boolean,
92-
target: IEventThisPlaceHolder,
98+
target,
9399
): void => {
94100
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
95101
const { key, previousValue } = changed;
96102

97-
if (this.model.has(key)) {
98-
const prevVal = this.model.get(key);
99-
assert.strictEqual(
100-
prevVal,
101-
previousValue,
102-
`contained previous value mismatch at ${key}: expected: ${prevVal}, actual: ${previousValue}`,
103-
);
104-
}
105-
106-
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
107-
const newVal = this.sharedDir.get(key);
103+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
104+
const newVal = target.get(key);
108105
if (newVal === undefined) {
109106
this.model.delete(key);
110107
} else {
@@ -131,7 +128,7 @@ export class SharedDirectoryOracle {
131128
assert.deepStrictEqual(
132129
actual,
133130
value,
134-
`SharedDirectoryOracle mismatch at path="${pathKey}" with actual value = ${actual} and oracle value = ${value} with model entries = ${JSON.stringify(this.model.entries())}}`,
131+
`SharedDirectoryOracle mismatch at path="${pathKey}" with actual value = ${actual} and oracle value = ${value}}}`,
135132
);
136133
}
137134
}

packages/dds/map/src/test/mocha/directoryFuzzTests.spec.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,15 @@ import {
2828
type DirOperation,
2929
type DirOperationGenerationConfig,
3030
} from "./fuzzUtils.js";
31-
import { hasSharedDirectroyOracle, type ISharedDirectoryWithOracle } from "./oracleUtils.js";
31+
import { hasSharedDirectoryOracle, type ISharedDirectoryWithOracle } from "./oracleUtils.js";
3232

3333
const oracleEmitter = new TypedEventEmitter<DDSFuzzHarnessEvents>();
3434

3535
oracleEmitter.on("clientCreate", (client) => {
3636
const channel = client.channel as ISharedDirectoryWithOracle;
37-
const directroyOracle = new SharedDirectoryOracle(channel);
38-
channel.sharedDirectoryOracle = directroyOracle;
39-
registerOracle(directroyOracle);
37+
const directoryOracle = new SharedDirectoryOracle(channel);
38+
channel.sharedDirectoryOracle = directoryOracle;
39+
registerOracle(directoryOracle);
4040
});
4141

4242
describe("SharedDirectory fuzz Create/Delete concentrated", () => {
@@ -55,11 +55,11 @@ describe("SharedDirectory fuzz Create/Delete concentrated", () => {
5555
generatorFactory: () => takeAsync(100, makeDirOperationGenerator(options)),
5656
reducer: makeDirReducer({ clientIds: ["A", "B", "C"], printConsoleLogs: false }),
5757
validateConsistency: async (a, b) => {
58-
if (hasSharedDirectroyOracle(a.channel)) {
58+
if (hasSharedDirectoryOracle(a.channel)) {
5959
a.channel.sharedDirectoryOracle.validate();
6060
}
6161

62-
if (hasSharedDirectroyOracle(b.channel)) {
62+
if (hasSharedDirectoryOracle(b.channel)) {
6363
b.channel.sharedDirectoryOracle.validate();
6464
}
6565
return assertEquivalentDirectories(a.channel, b.channel);

packages/dds/map/src/test/mocha/fuzzUtils.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ import {
2929
} from "../../index.js";
3030

3131
import { assertEquivalentDirectories } from "./directoryEquivalenceUtils.js";
32-
import { hasSharedMapOracle, hasSharedDirectroyOracle } from "./oracleUtils.js";
32+
import { hasSharedMapOracle, hasSharedDirectoryOracle } from "./oracleUtils.js";
3333

3434
/**
3535
* Represents a map clear operation.
@@ -519,11 +519,11 @@ export const baseDirModel: DDSFuzzModel<DirectoryFactory, DirOperation> = {
519519
generatorFactory: () => takeAsync(100, makeDirOperationGenerator(dirDefaultOptions)),
520520
reducer: makeDirReducer({ clientIds: ["A", "B", "C"], printConsoleLogs: false }),
521521
validateConsistency: async (a, b) => {
522-
if (hasSharedDirectroyOracle(a.channel)) {
522+
if (hasSharedDirectoryOracle(a.channel)) {
523523
a.channel.sharedDirectoryOracle.validate();
524524
}
525525

526-
if (hasSharedDirectroyOracle(b.channel)) {
526+
if (hasSharedDirectoryOracle(b.channel)) {
527527
b.channel.sharedDirectoryOracle.validate();
528528
}
529529
return assertEquivalentDirectories(a.channel, b.channel);

packages/dds/map/src/test/mocha/oracleUtils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ export interface ISharedMapWithOracle extends ISharedMap {
2727
* Type guard for directory
2828
* @internal
2929
*/
30-
export function hasSharedDirectroyOracle(s: SharedDirectory): s is ISharedDirectoryWithOracle {
30+
export function hasSharedDirectoryOracle(s: SharedDirectory): s is ISharedDirectoryWithOracle {
3131
return (
3232
"sharedDirectoryOracle" in s && s.sharedDirectoryOracle instanceof SharedDirectoryOracle
3333
);

0 commit comments

Comments
 (0)