mirror of
https://github.com/Azure/cosmos-explorer.git
synced 2025-05-13 20:05:57 +01:00
* Execute the queries with high/low priority * improvement made to the Cosmos client and created separate plugin class for setting priority header * added test cases for the priority execution utility * removed unwanted code * fix compile time issues * fix compile time issues * fixed lint and stylinkg issues * fixed lint and styling issues * skip the lint check for src/Utils/PriorityBasedExecutionUtils.ts * incorporating review comments, added the default priority level changes * changed the priority to default instead of low * removed the unwanted if condition --------- Co-authored-by: Faiz Chachiya <faizchachiya@microsoft.com>
60 lines
2.2 KiB
TypeScript
60 lines
2.2 KiB
TypeScript
import * as PriorityBasedExecutionUtils from "./PriorityBasedExecutionUtils";
|
|
import { LocalStorageUtility, StorageKey } from "Shared/StorageUtility";
|
|
import { PriorityLevel } from "../Common/Constants";
|
|
import * as Cosmos from "@azure/cosmos";
|
|
|
|
describe("Priority execution utility", () => {
|
|
it("check default priority level is Low", () => {
|
|
expect(PriorityBasedExecutionUtils.getPriorityLevel()).toEqual(PriorityLevel.Low);
|
|
});
|
|
|
|
it("check the priority level is returned as present in local storage", () => {
|
|
LocalStorageUtility.setEntryString(StorageKey.PriorityLevel, PriorityLevel.High);
|
|
expect(PriorityBasedExecutionUtils.getPriorityLevel()).toEqual(PriorityLevel.High);
|
|
});
|
|
|
|
it("check relevant request based on different resource types", () => {
|
|
const requestContext1: Cosmos.RequestContext = {
|
|
resourceType: Cosmos.ResourceType.item,
|
|
globalEndpointManager: null,
|
|
connectionPolicy: null,
|
|
requestAgent: null,
|
|
method: null,
|
|
options: null,
|
|
plugins: null,
|
|
};
|
|
const requestContext2: Cosmos.RequestContext = {
|
|
resourceType: Cosmos.ResourceType.conflicts,
|
|
globalEndpointManager: null,
|
|
connectionPolicy: null,
|
|
requestAgent: null,
|
|
method: null,
|
|
options: null,
|
|
plugins: null,
|
|
};
|
|
const requestContext3: Cosmos.RequestContext = {
|
|
resourceType: Cosmos.ResourceType.sproc,
|
|
operationType: Cosmos.OperationType.Execute,
|
|
globalEndpointManager: null,
|
|
connectionPolicy: null,
|
|
requestAgent: null,
|
|
method: null,
|
|
options: null,
|
|
plugins: null,
|
|
};
|
|
const requestContext4: Cosmos.RequestContext = {
|
|
resourceType: Cosmos.ResourceType.database,
|
|
globalEndpointManager: null,
|
|
connectionPolicy: null,
|
|
requestAgent: null,
|
|
method: null,
|
|
options: null,
|
|
plugins: null,
|
|
};
|
|
expect(PriorityBasedExecutionUtils.isRelevantRequest(requestContext1)).toEqual(true);
|
|
expect(PriorityBasedExecutionUtils.isRelevantRequest(requestContext2)).toEqual(true);
|
|
expect(PriorityBasedExecutionUtils.isRelevantRequest(requestContext3)).toEqual(true);
|
|
expect(PriorityBasedExecutionUtils.isRelevantRequest(requestContext4)).toEqual(false);
|
|
});
|
|
});
|