Skip to content

Commit

Permalink
Merge pull request #42 from javierbrea/release
Browse files Browse the repository at this point in the history
Release 1.0.2
  • Loading branch information
javierbrea committed Oct 18, 2020
2 parents d9bb9c2 + bd4aa45 commit e2d4df1
Show file tree
Hide file tree
Showing 16 changed files with 781 additions and 1,108 deletions.
11 changes: 10 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
@@ -1,2 +1,11 @@
version: ~> 1.0
import: javierbrea/nodejs-ci-cd-shared-config:.travis.yml@master
import:
- source: javierbrea/nodejs-ci-cd-shared-config:.travis.yml@master
mode: deep_merge_prepend

jobs:
include:
- stage: windows test
os: windows
script:
- npm run test:ci
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,13 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
### Fixed
### Removed

## [1.0.2] - 2020-10-18
### Added
- chore: Run tests on Windows OS in pipelines

### Fixed
- fix: Plugin was not working properly on Windows

## [1.0.1] - 2020-08-27
### Changed
- chore: Update dependencies
Expand Down
2 changes: 1 addition & 1 deletion jest.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,5 +29,5 @@ module.exports = {

// The glob patterns Jest uses to detect test files
testMatch: ["**/test/**/*.spec.js"],
// testMatch: ["**/test/src/rules/no-private.spec.js"],
// testMatch: ["**/test/src/rules/entry-point.spec.js"],
};
1,736 changes: 703 additions & 1,033 deletions package-lock.json

Large diffs are not rendered by default.

23 changes: 9 additions & 14 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "eslint-plugin-boundaries",
"version": "1.0.1",
"version": "1.0.2",
"description": "Eslint plugin checking architecture boundaries between elements",
"keywords": [
"eslint",
Expand All @@ -23,9 +23,7 @@
"lint-staged": "lint-staged",
"test": "jest",
"test:coverage": "npm run test",
"test:ci": "npm run test",
"stryker:dev": "stryker run stryker.conf.local.js",
"stryker": "stryker run"
"test:ci": "npm run test"
},
"peerDependencies": {
"eslint": "^6.0.0 || ^7.0.0"
Expand All @@ -35,17 +33,14 @@
"globule": "1.3.2"
},
"devDependencies": {
"@stryker-mutator/core": "3.3.1",
"@stryker-mutator/javascript-mutator": "3.3.1",
"@stryker-mutator/jest-runner": "3.3.1",
"coveralls": "3.0.9",
"eslint": "7.7.0",
"eslint-config-prettier": "6.11.0",
"eslint": "7.11.0",
"eslint-config-prettier": "6.12.0",
"eslint-plugin-prettier": "3.1.4",
"husky": "4.2.5",
"jest": "26.4.2",
"lint-staged": "10.2.11",
"prettier": "2.0.5"
"husky": "4.3.0",
"jest": "26.5.3",
"lint-staged": "10.4.0",
"prettier": "2.1.2"
},
"lint-staged": {
"src/**/*.js": "eslint",
Expand All @@ -57,6 +52,6 @@
}
},
"engines": {
"node": "12.x || 13.x || 14.x"
"node": "12.x || 14.x"
}
}
2 changes: 1 addition & 1 deletion sonar-project.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
sonar.organization=javierbrea
sonar.projectKey=eslint-plugin-boundaries
sonar.projectVersion=1.0.1
sonar.projectVersion=1.0.2

sonar.javascript.file.suffixes=.js
sonar.sourceEncoding=UTF-8
Expand Down
13 changes: 7 additions & 6 deletions src/helpers/paths.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ const globule = require("globule");

const { IGNORE, ALIAS, TYPES } = require("../constants/settings");

const PATH_SEP = "/";
const CODE_PATH_SEP = "/";
const PATH_SEP = path.sep;
const NODE_MODULES = "node_modules";
const INDEX = "index.js";

Expand Down Expand Up @@ -35,9 +36,9 @@ const isAlias = (relativeFilePath, settings) => !!getUsedAlias(relativeFilePath,

const replaceAliasByAbsolutePath = (relativeFilePath, settings) => {
const usedAlias = getUsedAlias(relativeFilePath, settings);
return relativeFilePath.replace(
usedAlias,
path.resolve(getBasePath(), settings[ALIAS][usedAlias])
return path.resolve(
getBasePath(),
relativeFilePath.replace(usedAlias, settings[ALIAS][usedAlias])
);
};

Expand Down Expand Up @@ -81,8 +82,8 @@ const isAliasToNodeModules = (dependencyPath, settings) => {

const isLocalDependency = (dependencyPath, settings) => {
return (
((dependencyPath.indexOf(`..${PATH_SEP}`) === 0 ||
dependencyPath.indexOf(`.${PATH_SEP}`) === 0) &&
((dependencyPath.indexOf(`..${CODE_PATH_SEP}`) === 0 ||
dependencyPath.indexOf(`.${CODE_PATH_SEP}`) === 0) &&
dependencyPath.indexOf(NODE_MODULES) < 1) ||
(isAlias(dependencyPath, settings) && !isAliasToNodeModules(dependencyPath, settings))
);
Expand Down
29 changes: 0 additions & 29 deletions stryker.conf.js

This file was deleted.

20 changes: 14 additions & 6 deletions test/src/helpers.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,24 @@
const path = require("path");
const RuleTester = require("eslint").RuleTester;

const relativeFilePath = (relativePath) => path.join("test", "fixtures", relativePath);
const codeFilePath = (relativePath) => {
return ["test", "fixtures", relativePath].join("/");
};

const relativeFilePath = (relativePath) => {
return path.join("test", "fixtures", relativePath);
};

const absoluteFilePath = (relativePath) =>
path.resolve(process.cwd(), path.join("test", "fixtures", relativePath));
const absoluteFilePath = (relativePath) => {
return path.resolve(process.cwd(), relativeFilePath(relativePath));
};

const settings = {
"boundaries/types": ["components", "modules", "helpers"],
"boundaries/alias": {
helpers: relativeFilePath("src/helpers"),
components: relativeFilePath("src/components"),
modules: relativeFilePath("src/modules"),
helpers: codeFilePath("src/helpers"),
components: codeFilePath("src/components"),
modules: codeFilePath("src/modules"),
},
};

Expand All @@ -31,4 +38,5 @@ module.exports = {
createRuleTester,
absoluteFilePath,
relativeFilePath,
codeFilePath,
};
4 changes: 2 additions & 2 deletions test/src/rules/allowed-types.spec.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const { ALLOWED_TYPES: RULE } = require("../../../src/constants/rules");

const { createRuleTester, absoluteFilePath, settings, relativeFilePath } = require("../helpers");
const { createRuleTester, absoluteFilePath, settings, codeFilePath } = require("../helpers");

const rule = require(`../../../src/rules/${RULE}`);
const ruleTester = createRuleTester();
Expand Down Expand Up @@ -91,7 +91,7 @@ ruleTester.run(RULE, rule, {
options,
settings: {
...settings,
"boundaries/ignore": [relativeFilePath("src/helpers/helper-b/**/*.js")],
"boundaries/ignore": [codeFilePath("src/helpers/helper-b/**/*.js")],
},
},
// Invalid options
Expand Down
10 changes: 8 additions & 2 deletions test/src/rules/entry-point.spec.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
const { ENTRY_POINT: RULE } = require("../../../src/constants/rules");

const { createRuleTester, absoluteFilePath, relativeFilePath, settings } = require("../helpers");
const {
createRuleTester,
absoluteFilePath,
relativeFilePath,
codeFilePath,
settings,
} = require("../helpers");

const rule = require(`../../../src/rules/${RULE}`);
const ruleTester = createRuleTester();
Expand Down Expand Up @@ -45,7 +51,7 @@ ruleTester.run(RULE, rule, {
options,
settings: {
...settings,
"boundaries/ignore": [relativeFilePath("src/helpers/helper-b/**/*.js")],
"boundaries/ignore": [codeFilePath("src/helpers/helper-b/**/*.js")],
},
},
// import index with default option
Expand Down
4 changes: 2 additions & 2 deletions test/src/rules/no-external.spec.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const { NO_EXTERNAL: RULE } = require("../../../src/constants/rules");

const { createRuleTester, absoluteFilePath, relativeFilePath, settings } = require("../helpers");
const { createRuleTester, absoluteFilePath, codeFilePath, settings } = require("../helpers");

const rule = require(`../../../src/rules/${RULE}`);
const ruleTester = createRuleTester();
Expand Down Expand Up @@ -38,7 +38,7 @@ ruleTester.run(RULE, rule, {
options,
settings: {
...settings,
"boundaries/ignore": [relativeFilePath("src/components/component-a/**/*.js")],
"boundaries/ignore": [codeFilePath("src/components/component-a/**/*.js")],
},
},
// Modules can import react-router-dom
Expand Down
6 changes: 3 additions & 3 deletions test/src/rules/no-import-ignored.spec.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const { NO_IMPORT_IGNORED: RULE } = require("../../../src/constants/rules");

const { createRuleTester, absoluteFilePath, relativeFilePath, settings } = require("../helpers");
const { createRuleTester, absoluteFilePath, codeFilePath, settings } = require("../helpers");

const rule = require(`../../../src/rules/${RULE}`);
const ruleTester = createRuleTester();
Expand All @@ -9,7 +9,7 @@ const ERROR_MESSAGE = "Importing ignored files is not allowed";

const customSettings = {
...settings,
"boundaries/ignore": [relativeFilePath("src/components/component-b/**/*.js")],
"boundaries/ignore": [codeFilePath("src/components/component-b/**/*.js")],
};

ruleTester.run(RULE, rule, {
Expand All @@ -26,7 +26,7 @@ ruleTester.run(RULE, rule, {
code: "import ComponentB from 'components/component-b'",
settings: {
...settings,
"boundaries/ignore": [relativeFilePath("src/components/**/*.js")],
"boundaries/ignore": [codeFilePath("src/components/**/*.js")],
},
},
// Non ignored files can be imported
Expand Down
6 changes: 3 additions & 3 deletions test/src/rules/no-import-not-recognized-types.spec.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const { NO_IMPORT_NOT_RECOGNIZED_TYPES: RULE } = require("../../../src/constants/rules");

const { createRuleTester, absoluteFilePath, relativeFilePath, settings } = require("../helpers");
const { createRuleTester, absoluteFilePath, codeFilePath, settings } = require("../helpers");

const rule = require(`../../../src/rules/${RULE}`);
const ruleTester = createRuleTester();
Expand All @@ -9,7 +9,7 @@ const ERROR_MESSAGE = "Importing not recognized elements is not allowed";

const customSettings = {
...settings,
"boundaries/ignore": [relativeFilePath("src/components/component-b/**/*.js")],
"boundaries/ignore": [codeFilePath("src/components/component-b/**/*.js")],
};

ruleTester.run(RULE, rule, {
Expand All @@ -26,7 +26,7 @@ ruleTester.run(RULE, rule, {
code: "import Foo from '../../foo'",
settings: {
...settings,
"boundaries/ignore": [relativeFilePath("src/components/**/*.js")],
"boundaries/ignore": [codeFilePath("src/components/**/*.js")],
},
},
// Recognized types can be imported
Expand Down
12 changes: 9 additions & 3 deletions test/src/rules/no-private.spec.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
const { NO_PRIVATE: RULE } = require("../../../src/constants/rules");

const { createRuleTester, absoluteFilePath, relativeFilePath, settings } = require("../helpers");
const {
createRuleTester,
absoluteFilePath,
relativeFilePath,
codeFilePath,
settings,
} = require("../helpers");

const rule = require(`../../../src/rules/${RULE}`);
const ruleTester = createRuleTester();
Expand Down Expand Up @@ -28,7 +34,7 @@ ruleTester.run(RULE, rule, {
options,
settings: {
...settings,
"boundaries/ignore": [relativeFilePath("src/components/component-a/ComponentA.js")],
"boundaries/ignore": [codeFilePath("src/components/component-a/ComponentA.js")],
},
},
// Ignored dependencies can be imported
Expand All @@ -39,7 +45,7 @@ ruleTester.run(RULE, rule, {
settings: {
...settings,
"boundaries/ignore": [
relativeFilePath("src/components/component-a/components/component-c/**/*.js"),
codeFilePath("src/components/component-a/components/component-c/**/*.js"),
],
},
},
Expand Down
4 changes: 2 additions & 2 deletions test/src/rules/prefer-recognized-types.spec.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const { PREFER_RECOGNIZED_TYPES: RULE } = require("../../../src/constants/rules");

const { createRuleTester, absoluteFilePath, relativeFilePath, settings } = require("../helpers");
const { createRuleTester, absoluteFilePath, codeFilePath, settings } = require("../helpers");

const rule = require(`../../../src/rules/${RULE}`);
const ruleTester = createRuleTester();
Expand Down Expand Up @@ -36,7 +36,7 @@ ruleTester.run(RULE, rule, {
code: FOO_CODE,
settings: {
...settings,
"boundaries/ignore": [relativeFilePath("src/foo/*.js")],
"boundaries/ignore": [codeFilePath("src/foo/*.js")],
},
},
],
Expand Down

0 comments on commit e2d4df1

Please sign in to comment.