Skip to content

Commit

Permalink
Merge branch 'master' into FE-6862
Browse files Browse the repository at this point in the history
  • Loading branch information
nuria1110 authored Oct 18, 2024
2 parents d43951d + 38f9a42 commit f3d0200
Show file tree
Hide file tree
Showing 20 changed files with 526 additions and 207 deletions.
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,17 @@
### [143.2.4](https://github.com/Sage/carbon/compare/v143.2.3...v143.2.4) (2024-10-18)


### Bug Fixes

* **action-popover:** ensure that opening using the up arrow focuses last element in the menu ([38aaed9](https://github.com/Sage/carbon/commit/38aaed9f7abaa7c5fe7750d9f9a61b60c3a3b0f3)), closes [#6826](https://github.com/Sage/carbon/issues/6826)

### [143.2.3](https://github.com/Sage/carbon/compare/v143.2.2...v143.2.3) (2024-10-18)


### Bug Fixes

* downgrade @tanstack/react-virtual to version 3.10.1 ([b1cd42f](https://github.com/Sage/carbon/commit/b1cd42ffc258b9fda8db76009876128cd3b7c2bb))

### [143.2.2](https://github.com/Sage/carbon/compare/v143.2.1...v143.2.2) (2024-10-16)


Expand Down
30 changes: 20 additions & 10 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "carbon-react",
"version": "143.2.2",
"version": "143.2.4",
"description": "A library of reusable React components for easily building user interfaces.",
"files": [
"lib",
Expand Down Expand Up @@ -153,6 +153,7 @@
"jest": "^29.5.0",
"jest-canvas-mock": "^2.5.2",
"jest-environment-jsdom": "^29.5.0",
"jest-fail-on-console": "^3.3.1",
"jest-fetch-mock": "^3.0.3",
"jest-styled-components": "^6.3.4",
"jsdom": "^21.1.0",
Expand Down Expand Up @@ -185,7 +186,7 @@
"@floating-ui/react-dom": "~1.3.0",
"@octokit/rest": "^18.12.0",
"@styled-system/prop-types": "^5.1.5",
"@tanstack/react-virtual": "^3.10.8",
"@tanstack/react-virtual": "3.10.1",
"@types/styled-system": "^5.1.22",
"chalk": "^4.1.2",
"ci-info": "^3.8.0",
Expand Down
7 changes: 3 additions & 4 deletions scripts/generate_metadata/generate_metadata.mjs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
/* eslint-disable no-console */
import fs from "fs";
import fetch from "node-fetch";
import semver from "semver";
Expand Down Expand Up @@ -47,7 +46,7 @@ export const writeFile = (jsonString) => {
if (err) {
throw err;
} else {
console.log("Successfully created metadata.json file.");
global.console.log("Successfully created metadata.json file.");
}
});
};
Expand All @@ -58,8 +57,8 @@ export const generateMetadata = async () => {
try {
versions = await fetchVersions();
} catch (err) {
console.error(err);
process.exit(1);
global.console.error(err);
return;
}

const formattedVersions = formatVersions(versions);
Expand Down
118 changes: 0 additions & 118 deletions scripts/generate_metadata/generate_metadata.spec.js

This file was deleted.

102 changes: 102 additions & 0 deletions scripts/generate_metadata/generate_metadata.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
import fs from "fs";
import fetch from "jest-fetch-mock";
import { generateMetadata, writeFile } from "./generate_metadata";

jest.mock("fs");
const mockedFs = jest.mocked(fs);

const mockNpmVersions = {
versions: {
"98.0.0": {},
"99.0.0": {},
"100.1.1": {},
"100.2.1": {},
"101.0.0": {},
"102.0.0": {},
},
};

const mockMetadata = {
versions: {
"v102.0.0": "https://carbon.sage.com/v/102.0.0/index.html",
"v101.0.0": "https://carbon.sage.com/v/101.0.0/index.html",
"v100.2.1": "https://carbon.sage.com/v/100.2.1/index.html",
},
};

beforeEach(() => {
jest.spyOn(global.console, "log").mockImplementation(() => {});
jest.spyOn(global.console, "error").mockImplementation(() => {});

fetch.mockResponse(JSON.stringify(mockNpmVersions));

mockedFs.mkdirSync = jest.fn((path, options, callback) => {
callback();
});
mockedFs.writeFileSync = jest.fn((path, json, callback) => {
callback();
});
});

afterEach(() => {
jest.resetAllMocks();
fetch.resetMocks();
});

test("creates a metadata.json file in a metadata directory", async () => {
await generateMetadata();

expect(mockedFs.mkdirSync).toHaveBeenCalledWith(
"metadata",
{},
expect.any(Function)
);

expect(mockedFs.writeFileSync).toHaveBeenCalledWith(
"metadata/metadata.json",
JSON.stringify(mockMetadata),
expect.any(Function)
);
});

test("throws an error, when unable to create the metadata directory", () => {
mockedFs.mkdirSync = jest.fn((path, options, callback) => {
callback(new Error("An error occurred."));
});

expect(() => writeFile()).toThrow("An error occurred.");
});

test("throws an error, when unable to create the metadata.json file", () => {
mockedFs.writeFileSync = jest.fn((path, json, callback) => {
callback(new Error("An error occurred."));
});

expect(() => writeFile()).toThrow("An error occurred.");
});

describe("when unable to fetch carbon data from npm", () => {
it("logs error with http status code", async () => {
fetch.mockResponse(JSON.stringify(mockNpmVersions), {
status: 500,
ok: false,
});

await generateMetadata();

expect(global.console.error).toHaveBeenCalledWith(
new Error("Failed to fetch from npm with HTTP error code 500")
);
});

it("does not attempt to write metadata.json file", async () => {
fetch.mockResponse(JSON.stringify(mockNpmVersions), {
status: 500,
ok: false,
});

await generateMetadata();

expect(mockedFs.writeFileSync).not.toHaveBeenCalled();
});
});
7 changes: 7 additions & 0 deletions src/__spec_helper__/__internal__/index.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,17 @@
import { configure } from "@testing-library/react";
import { enableFetchMocks } from "jest-fetch-mock";
import failOnConsole from "jest-fail-on-console";

import { setupMatchMediaMock } from "../mock-match-media";
import setupResizeObserverMock from "../mock-resize-observer";
import setupScrollToMock from "../mock-element-scrollto";

import "@testing-library/jest-dom";

failOnConsole({
shouldFailOnError: true,
shouldFailOnWarn: false,
});
enableFetchMocks();
setupResizeObserverMock();
setupMatchMediaMock();
Expand Down
2 changes: 1 addition & 1 deletion src/__spec_helper__/__internal__/select-test-utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ export function simulateSelectTextboxEvent(
});
resizeObserver.resize();
});
if (eventType === "focus") jest.runOnlyPendingTimers();
if (eventType === "focus") act(() => jest.runOnlyPendingTimers());
container.update();
}

Expand Down
Loading

0 comments on commit f3d0200

Please sign in to comment.