Files
Joren Broekema 77959fb943 De-Amazon the repository (#1516)
* chore: update pkg json license and copyright

* chore: delete copyright headers in test files

* chore: delete copyright headers in examples files

* chore: update starlight and remove copyright from lib files

* chore: cleanup last copyright remnants and remover script

* chore: rebase
2025-09-30 03:34:12 +02:00

76 lines
2.9 KiB
JavaScript

import { expect } from 'chai';
import childProcess from 'child_process';
import fs from 'node:fs';
import { clearOutput, fileExists } from '../__tests__/__helpers.js';
describe('cliBuildWithJsConfig', () => {
beforeEach(() => {
clearOutput(undefined, fs);
});
afterEach(() => {
clearOutput();
});
it('should work with json config', () => {
childProcess.execSync('node ./bin/style-dictionary build --config __tests__/__configs/test.js');
expect(fileExists('__tests__/__output/web/_icons.css', fs)).to.be.true;
expect(fileExists('__tests__/__output/android/colors.xml', fs)).to.be.true;
});
it('should work with javascript config', () => {
childProcess.execSync('node ./bin/style-dictionary build --config __tests__/__configs/test.js');
expect(fileExists('__tests__/__output/web/_icons.css', fs)).to.be.true;
expect(fileExists('__tests__/__output/android/colors.xml', fs)).to.be.true;
});
describe('logging args', () => {
it('should not log anything if --silent is used', () => {
const result = childProcess.execSync(
'node ./bin/style-dictionary build --config __tests__/__configs/test.js --silent',
);
expect(result.toString()).to.equal(``);
});
it('should only log success logs if --no-warn is used', () => {
const result = childProcess.execSync(
'node ./bin/style-dictionary build --config __tests__/__configs/test.js --no-warn',
);
expect(result.toString().match('Token collisions detected')).to.be.null;
});
it('should log briefly if neither --verbose nor --silent is used', () => {
//const logStub = stubMethod(console, 'log');
const result = childProcess.execSync(
'node ./bin/style-dictionary build --config __tests__/__configs/tokenCollisions.json',
);
expect(result.toString()).to.equal(`
css
⚠️ __tests__/__output/css/vars.css
While building vars.css, token collisions were found; output may be unexpected. Ignore this warning if intentional.
Use log.verbosity "verbose" or use CLI option --verbose for more details.
Refer to: https://styledictionary.com/reference/logging/\n`);
});
it('should log verbosely if --verbose is used', () => {
//const logStub = stubMethod(console, 'log');
const result = childProcess.execSync(
'node ./bin/style-dictionary build --config __tests__/__configs/tokenCollisions.json --verbose',
);
expect(result.toString()).to.equal(`
css
⚠️ __tests__/__output/css/vars.css
While building vars.css, token collisions were found; output may be unexpected. Ignore this warning if intentional.
Output name red was generated by:
color.red #f00
color.background.red #f00
This many-to-one issue is usually caused by some combination of:
* conflicting or similar paths/names in token definitions
* platform transforms/transformGroups affecting names, especially when removing specificity
* overly inclusive file filters\n`);
});
});
});