Reinstating partition key fix with added check for nested partitions (#1947)
* Reinstating empty hiearchical partition key value fix * Added use case for nested partitions * Fix lint issue
This commit is contained in:
parent
833d677d20
commit
0658448b54
|
@ -147,5 +147,33 @@ describe("Query Utils", () => {
|
||||||
expect(expectedPartitionKeyValues).toContain(documentContent["Type"]);
|
expect(expectedPartitionKeyValues).toContain(documentContent["Type"]);
|
||||||
expect(expectedPartitionKeyValues).toContain(documentContent["Status"]);
|
expect(expectedPartitionKeyValues).toContain(documentContent["Status"]);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("should extract three partition key values even if one is empty", () => {
|
||||||
|
const multiPartitionKeyDefinition: PartitionKeyDefinition = {
|
||||||
|
kind: PartitionKeyKind.MultiHash,
|
||||||
|
paths: ["/Country", "/Region", "/Category"],
|
||||||
|
};
|
||||||
|
const expectedPartitionKeyValues: string[] = ["United States", "US-Washington", ""];
|
||||||
|
const partitioinKeyValues: PartitionKey[] = extractPartitionKeyValues(
|
||||||
|
documentContent,
|
||||||
|
multiPartitionKeyDefinition,
|
||||||
|
);
|
||||||
|
expect(partitioinKeyValues.length).toBe(3);
|
||||||
|
expect(expectedPartitionKeyValues).toContain(documentContent["Country"]);
|
||||||
|
expect(expectedPartitionKeyValues).toContain(documentContent["Region"]);
|
||||||
|
expect(expectedPartitionKeyValues).toContain(documentContent["Category"]);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should extract no partition key values in the case nested partition key", () => {
|
||||||
|
const singlePartitionKeyDefinition: PartitionKeyDefinition = {
|
||||||
|
kind: PartitionKeyKind.Hash,
|
||||||
|
paths: ["/Location.type"],
|
||||||
|
};
|
||||||
|
const partitionKeyValues: PartitionKey[] = extractPartitionKeyValues(
|
||||||
|
documentContent,
|
||||||
|
singlePartitionKeyDefinition,
|
||||||
|
);
|
||||||
|
expect(partitionKeyValues.length).toBe(0);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -96,7 +96,7 @@ export const extractPartitionKeyValues = (
|
||||||
const partitionKeyValues: PartitionKey[] = [];
|
const partitionKeyValues: PartitionKey[] = [];
|
||||||
partitionKeyDefinition.paths.forEach((partitionKeyPath: string) => {
|
partitionKeyDefinition.paths.forEach((partitionKeyPath: string) => {
|
||||||
const partitionKeyPathWithoutSlash: string = partitionKeyPath.substring(1);
|
const partitionKeyPathWithoutSlash: string = partitionKeyPath.substring(1);
|
||||||
if (documentContent[partitionKeyPathWithoutSlash]) {
|
if (documentContent[partitionKeyPathWithoutSlash] !== undefined) {
|
||||||
partitionKeyValues.push(documentContent[partitionKeyPathWithoutSlash]);
|
partitionKeyValues.push(documentContent[partitionKeyPathWithoutSlash]);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue