@itwin/core-backend
Version:
iTwin.js backend components
43 lines • 1.94 kB
JavaScript
/*---------------------------------------------------------------------------------------------
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
* See LICENSE.md in the project root for license terms and full copyright notice.
*--------------------------------------------------------------------------------------------*/
import { expect } from "chai";
import * as sinon from "sinon";
import { CloudSqlite } from "../../CloudSqlite";
import { BlobContainer } from "../../BlobContainerService";
import { setOnlineStatus } from "../../internal/OnlineStatus";
describe("CloudSqlite.requestToken", () => {
// Supply userToken directly so IModelHost.getAccessToken is never called
const args = {
containerId: "test-container",
accessLevel: "read",
userToken: "test-user-token",
};
let originalService;
beforeEach(() => {
originalService = BlobContainer.service;
});
afterEach(() => {
BlobContainer.service = originalService;
sinon.restore();
setOnlineStatus(true);
});
it("returns empty token and does not call BlobContainer.service when offline", async () => {
setOnlineStatus(false);
const requestTokenStub = sinon.stub().rejects(new Error("should not be called"));
BlobContainer.service = { requestToken: requestTokenStub };
const token = await CloudSqlite.requestToken(args);
expect(token).to.equal("");
expect(requestTokenStub.called).to.be.false;
});
it("returns the token from BlobContainer.service when online and request succeeds", async () => {
setOnlineStatus(true);
BlobContainer.service = {
requestToken: sinon.stub().resolves({ token: "my-sas-token" }),
};
const token = await CloudSqlite.requestToken(args);
expect(token).to.equal("my-sas-token");
});
});
//# sourceMappingURL=CloudSqlite.test.js.map