prettier/tests_integration/__tests__/config-resolution.js

116 lines
3.3 KiB
JavaScript

"use strict";
const path = require("path");
const runPrettier = require("../runPrettier");
const prettier = require("../../");
expect.addSnapshotSerializer(require("../path-serializer"));
test("resolves configuration from external files", () => {
const output = runPrettier("cli/config/", ["**/*.js"]);
expect(output.stdout).toMatchSnapshot();
expect(output.status).toEqual(0);
});
test("resolves configuration from external files and overrides by extname", () => {
const output = runPrettier("cli/config/", ["**/*.ts"]);
expect(output.stdout).toMatchSnapshot();
expect(output.status).toEqual(0);
});
test("accepts configuration from --config", () => {
const output = runPrettier("cli/config/", [
"--config",
".prettierrc",
"./js/file.js"
]);
expect(output.stdout).toMatchSnapshot();
expect(output.status).toEqual(0);
});
test("resolves configuration file with --find-config-path file", () => {
const output = runPrettier("cli/config/", [
"--find-config-path",
"no-config/file.js"
]);
expect(output.stdout).toMatchSnapshot();
expect(output.status).toEqual(0);
});
test("resolves json configuration file with --find-config-path file", () => {
const output = runPrettier("cli/config/", [
"--find-config-path",
"rc-json/file.js"
]);
expect(output.stdout).toMatchSnapshot();
expect(output.status).toEqual(0);
});
test("resolves yaml configuration file with --find-config-path file", () => {
const output = runPrettier("cli/config/", [
"--find-config-path",
"rc-yaml/file.js"
]);
expect(output.stdout).toMatchSnapshot();
expect(output.status).toEqual(0);
});
test("prints nothing when no file found with --find-config-path", () => {
const output = runPrettier("cli/config/", ["--find-config-path", ".."]);
expect(output.stdout).toEqual("");
expect(output.status).toEqual(1);
});
test("CLI overrides take precedence", () => {
const output = runPrettier("cli/config/", ["--print-width", "1", "**/*.js"]);
expect(output.stdout).toMatchSnapshot();
expect(output.status).toEqual(0);
});
test("API resolveConfig with no args", () => {
return prettier.resolveConfig().then(result => {
expect(result).toBeNull();
});
});
test("API resolveConfig.sync with no args", () => {
expect(prettier.resolveConfig.sync()).toBeNull();
});
test("API resolveConfig with file arg", () => {
const file = path.resolve(path.join(__dirname, "../cli/config/js/file.js"));
return prettier.resolveConfig(file).then(result => {
expect(result).toMatchObject({
tabWidth: 8
});
});
});
test("API resolveConfig.sync with file arg", () => {
const file = path.resolve(path.join(__dirname, "../cli/config/js/file.js"));
expect(prettier.resolveConfig.sync(file)).toMatchObject({
tabWidth: 8
});
});
test("API resolveConfig with file arg and extension override", () => {
const file = path.resolve(
path.join(__dirname, "../cli/config/no-config/file.ts")
);
return prettier.resolveConfig(file).then(result => {
expect(result).toMatchObject({
semi: true
});
});
});
test("API resolveConfig.sync with file arg and extension override", () => {
const file = path.resolve(
path.join(__dirname, "../cli/config/no-config/file.ts")
);
expect(prettier.resolveConfig.sync(file)).toMatchObject({
semi: true
});
});