Skip to content

Commit

Permalink
Prepare 35.0.0 (#305)
Browse files Browse the repository at this point in the history
  • Loading branch information
ybiquitous committed Dec 8, 2023
1 parent 9d8d64d commit efba8bd
Show file tree
Hide file tree
Showing 6 changed files with 1,306 additions and 4,269 deletions.
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# Changelog

## 35.0.0

- Removed: `stylelint` less than `16.0.0` from peer dependencies.
- Removed: Node.js less than `18.12.0` support.
- Changed: updated to [`stylelint-config-recommended@14.0.0`](https://github.com/stylelint/stylelint-config-recommended/releases/tag/14.0.0).

## 34.0.0

- Removed: `stylelint` less than `15.10.0` from peer dependencies
Expand Down
12 changes: 7 additions & 5 deletions __tests__/engines.test.js → __tests__/engines.test.mjs
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
'use strict';
import { describe, it, beforeEach } from 'node:test';
import assert from 'node:assert/strict';
import { execFileSync } from 'node:child_process';
import { readFileSync } from 'node:fs';

const { execFileSync } = require('child_process');
const pkg = require('../package.json');
const pkg = JSON.parse(readFileSync(new URL('../package.json', import.meta.url), 'utf8'));

describe('engines.node', () => {
it("is the same as stylelint's one", () => {
Expand All @@ -18,7 +20,7 @@ describe('engines.node', () => {
// `^x.y.z` range can return multiple versions.
const nodeVersions = Array.isArray(nodeVersion) ? [...new Set(nodeVersion)] : [nodeVersion];

expect(nodeVersions).toHaveLength(1);
expect(nodeVersions).toContain(pkg.engines.node);
assert.equal(nodeVersions.length, 1);
assert.ok(nodeVersions.includes(pkg.engines.node));
});
});
90 changes: 0 additions & 90 deletions __tests__/index.test.js

This file was deleted.

100 changes: 100 additions & 0 deletions __tests__/index.test.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
import { describe, it, beforeEach } from 'node:test';
import assert from 'node:assert/strict';
import fs from 'node:fs';

import stylelint from 'stylelint';
import config from '../index.js';

describe('flags no warnings with valid css', () => {
const validCss = fs.readFileSync('./__tests__/valid.css', 'utf-8');
let result;

beforeEach(async () => {
result = await stylelint.lint({
code: validCss,
config,
});
});

it('did not error', () => {
assert.equal(result.errored, false);
});

it('flags no warnings', () => {
assert.equal(result.results[0].warnings.length, 0);
});
});

describe('flags warnings with invalid css', () => {
const invalidCss = fs.readFileSync('./__tests__/invalid.css', 'utf-8');
let result;

beforeEach(async () => {
result = await stylelint.lint({
code: invalidCss,
config,
});
});

it('did error', () => {
assert.equal(result.errored, true);
});

it('flags warnings', () => {
assert.equal(result.results[0].warnings.length, 5);
});

it('correct warning text', () => {
assert.deepEqual(
result.results[0].warnings.map((w) => w.text),
[
'Expected custom media query name "--FOO" to be kebab-case',
'Expected custom property name "--FOO" to be kebab-case',
'Expected keyframe name "FOO" to be kebab-case',
'Expected class selector ".FOO" to be kebab-case',
'Expected id selector "#FOO" to be kebab-case',
],
);
});

it('correct rule flagged', () => {
assert.deepEqual(
result.results[0].warnings.map((w) => w.rule),
[
'custom-media-pattern',
'custom-property-pattern',
'keyframes-name-pattern',
'selector-class-pattern',
'selector-id-pattern',
],
);
});

it('correct severity flagged', () => {
assert.equal(result.results[0].warnings[0].severity, 'error');
});

it('correct line number', () => {
assert.equal(result.results[0].warnings[0].line, 1);
});

it('correct column number', () => {
assert.equal(result.results[0].warnings[0].column, 15);
});
});

describe('deprecated rules are excluded', () => {
const ruleNames = Object.keys(config.rules);

it('is not empty', () => {
assert.ok(ruleNames.length > 0);
});

for (const ruleName of ruleNames) {
it(`${ruleName}`, async () => {
const rule = await stylelint.rules[ruleName];

assert.ok(!rule.meta.deprecated);
});
}
});

0 comments on commit efba8bd

Please sign in to comment.