Skip to content

Commit

Permalink
(#195) Update .nvmrc file with correct Node Version
Browse files Browse the repository at this point in the history
Closes #195

* Updated `.nvmrc` and `README.md` files with correct Node version
* Added `engines` property to `package.json` to specify Node and npm version ranges
* Added `.npmrc` file and set `engine-strict` property to `true`
* Updated Node version for GitHub actions
* Updated `README.md` file `Setup` section
* Added validation script file
* Removed `console.log` from test files
* Added `chromedriver_force_download=true` to `.npmrc` file
* Updated `chromedriver` from version `126.0.4` to `128.0.1`
* Removed `git add` task from `lint-staged` run script
  • Loading branch information
Oluwaseun Longe authored and Oluwaseun Longe committed Sep 5, 2024
1 parent 6b0ff4c commit 71a3e02
Show file tree
Hide file tree
Showing 10 changed files with 140 additions and 82 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/push-actions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: "20.11.0"
node-version: "20.15.0"
cache: "npm"
- name: Install X11 dependencies for robotjs (needed for unit testing on input-mask tests)
run: sudo apt-get install libxtst-dev libpng++-dev xvfb
Expand All @@ -35,7 +35,7 @@ jobs:
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: "20.11.0"
node-version: "20.15.0"
cache: "npm"
- name: Set up JDK 11 for x64
uses: actions/setup-java@v4
Expand Down
2 changes: 2 additions & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
engine-strict=true
chromedriver_force_download=true
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v20.4.0
v20.15.0
13 changes: 12 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ A place to learn and share with developers what makes web work accessible. This

- nvm: A Node version manager. It allows you to install several versions of node on the same machine and change versions easily.
- [Here are instructions in how to install nvm](https://github.com/nvm-sh/nvm#usage)
- After installing nvm, install a Node version >= 18 using nvm, ideally `nvm install 20.11.0`
- After installing nvm, install a Node version >= 20.15.0 using nvm, ideally `nvm install 20.15.0`
- npm: a Node Package Manager, usually installed alongside Node
- More info: [Downloading and installing Node.js and NPM](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)
- Lynx: A text-only browser used for testing for how a website will work without graphics turned on.
Expand Down Expand Up @@ -74,6 +74,17 @@ A place to learn and share with developers what makes web work accessible. This
```sh
git clone [email protected]:PublicisSapient/enable-a11y.git
cd enable-a11y
```

```sh
nvm use
```

This instructs nvm to use the Node version specified in the `.nvmrc` file located in the project root directory.

> Note: If the specified version has not been installed yet, nvm will advise to install it after running the command above.

```sh
npm clean-install
```

Expand Down
53 changes: 53 additions & 0 deletions bin/validate-node-version.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
#!/usr/bin/env node

import chalk from 'chalk';
import { execSync } from 'child_process';
import fs from 'fs';
import path from 'path';

async function getRunningVersion() {
const terminalCmd = 'node --version';

try {
return execSync(terminalCmd).toString().trim();
} catch (e) {
console.log(chalk.red(`Node version validation failed while running ${terminalCmd}`), e);
}
}

async function validateVersion() {
const directory = path.resolve();
let runningVersion;

try {
const filePath = path.resolve(directory, '.nvmrc');
const fileMetadata = await fs.promises.stat(filePath);
const fileContent = fs.readFileSync(filePath, "utf8");
let specVersion;

if (fileMetadata) {
specVersion = fileContent.startsWith("v") ? fileContent : `v${fileContent};`
runningVersion = (await getRunningVersion()).trim();

if (runningVersion.trim() !== specVersion.trim()) {
console.log(chalk.red(`Your Node version ${runningVersion} does not match the specified version ${specVersion} \rfound in the .nvmrc file in your project root`) );
console.log('\n-------------\n');
console.log(chalk.red('Run command "nvm use" followed by "npm ci" in your terminal before running "npm run start" again.\n'));
process.exit(1);
}
}


} catch (e) {
if (e.code !== "ENOENT") {
console.log(chalk.red('An unexpected error occurred while validating your Node version.\n'));
console.error(e);
process.exit(1);
}
console.log(chalk.red('Make sure the ".nvmrc" file from the Git repository is present in your project root directory\n'));
console.error(e);
process.exit(1);
}
}

validateVersion();
3 changes: 0 additions & 3 deletions js/test/combobox.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,6 @@ const testAutosuggestions = async (
// Assertions to test the autosuggestion options
expect(allContainSubstring).toBeTruthy();
expect(suggestions.length).toBe(expectedCount);
console.log(
`Suggestions after typing '${typeText}': ${suggestions.join(', ')}`,
);
};

describe("All combobox's Attributes Test", () => {
Expand Down
10 changes: 0 additions & 10 deletions js/test/horizontal-scroll.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,6 @@ describe('Test Horizontal Scrolling on all pages on Enable', () => {
};
});

if (!domInfo.doesPageHorizontallyScroll) {
console.log(
`isWrapChecked: (${domInfo.isWrapChecked}), scrollWidth: ${domInfo.scrollWidth}, clientWidth: ${domInfo.clientWidth}.`,
);
}

expect(domInfo.doesPageHorizontallyScroll).toBe(false);
}

Expand Down Expand Up @@ -72,10 +66,6 @@ describe('Test Horizontal Scrolling on all pages on Enable', () => {
}
});

console.log(
`has checkbox: ${hasCheckbox}, filename: ${filename}, isDesktop: ${isDesktop}`,
);

if (hasCheckbox) {
// press space and check if it's unchecked.
await page.keyboard.press('Space');
Expand Down
113 changes: 57 additions & 56 deletions package-lock.json

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

Loading

0 comments on commit 71a3e02

Please sign in to comment.