cosmos-explorer/src/Utils/PriorityBasedExecutionUtils.test.ts
FAIZ CHACHIYA b646f9f4cb
Wmt priority execution feature (#1546)
* 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>
2023-08-18 15:40:35 +05:30

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);
});
});