@aws/bedrock-token-generator
Version:
A lightweight library for generating short-term bearer tokens for AWS Bedrock API authentication
52 lines • 2.25 kB
JavaScript
;
/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0
*/
Object.defineProperty(exports, "__esModule", { value: true });
const BedrockTokenGenerator_1 = require("./BedrockTokenGenerator");
const getToken_1 = require("./getToken");
// Define mocks with minimal implementation
jest.mock("./getToken", () => ({
getToken: jest.fn(),
}));
describe("BedrockTokenGenerator", () => {
// Constants for testing
const MOCK_REGION = "us-west-2";
const MOCK_CREDENTIALS = {
accessKeyId: "AKIAIOSFODNN7EXAMPLE",
secretAccessKey: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
};
const MOCK_TOKEN = "bedrock-api-key-mocktoken123";
// Reset mocks before each test
beforeEach(() => {
jest.clearAllMocks();
// Setup default mock implementations for each test
getToken_1.getToken.mockResolvedValue(MOCK_TOKEN);
});
describe("constructor", () => {
it("should create an instance", () => {
const generator = new BedrockTokenGenerator_1.BedrockTokenGenerator();
expect(generator).toBeInstanceOf(BedrockTokenGenerator_1.BedrockTokenGenerator);
});
});
describe("getToken", () => {
it("should call getToken with credentials and region", async () => {
const generator = new BedrockTokenGenerator_1.BedrockTokenGenerator();
const token = await generator.getToken(MOCK_CREDENTIALS, MOCK_REGION);
expect(getToken_1.getToken).toHaveBeenCalledWith({
credentials: MOCK_CREDENTIALS,
region: MOCK_REGION,
expiresInSeconds: 43200, // 12 hours in seconds
});
expect(token).toBe(MOCK_TOKEN);
});
it("should propagate errors from getToken", async () => {
const error = new Error("Token generation failed");
getToken_1.getToken.mockRejectedValueOnce(error);
const generator = new BedrockTokenGenerator_1.BedrockTokenGenerator();
await expect(generator.getToken(MOCK_CREDENTIALS, MOCK_REGION)).rejects.toThrow("Token generation failed");
});
});
});
//# sourceMappingURL=BedrockTokenGenerator.spec.js.map