2017-08-02 06:54:42 +00:00
|
|
|
const configMigration = require('../../lib/config/migration.js');
|
2017-08-04 12:49:02 +00:00
|
|
|
const defaultConfig = require('../../lib/config/defaults').getConfig();
|
2017-08-02 06:54:42 +00:00
|
|
|
|
|
|
|
describe('config/migration', () => {
|
2017-08-04 12:49:02 +00:00
|
|
|
describe('migrateConfig(config, parentConfig)', () => {
|
2017-08-02 06:54:42 +00:00
|
|
|
it('it migrates config', () => {
|
|
|
|
const config = {
|
2018-09-12 10:16:17 +00:00
|
|
|
endpoints: [{}],
|
2017-08-02 06:54:42 +00:00
|
|
|
enabled: true,
|
2019-05-21 11:20:09 +00:00
|
|
|
platform: 'github',
|
|
|
|
hostRules: [
|
|
|
|
{
|
|
|
|
platform: 'docker',
|
|
|
|
username: 'some-username',
|
|
|
|
password: 'some-password',
|
|
|
|
},
|
|
|
|
],
|
2017-12-01 06:16:17 +00:00
|
|
|
extends: [':js-app', 'config:library'],
|
2017-08-02 06:54:42 +00:00
|
|
|
maintainYarnLock: true,
|
2017-08-14 05:49:33 +00:00
|
|
|
onboarding: 'false',
|
2018-05-17 05:33:59 +00:00
|
|
|
multipleMajorPrs: true,
|
2018-11-08 12:21:36 +00:00
|
|
|
gitFs: false,
|
2018-05-17 05:36:13 +00:00
|
|
|
separateMajorReleases: true,
|
2018-05-17 05:40:29 +00:00
|
|
|
separatePatchReleases: true,
|
2017-08-21 11:41:48 +00:00
|
|
|
automerge: 'none',
|
2017-10-12 16:55:46 +00:00
|
|
|
automergeMajor: false,
|
|
|
|
automergeMinor: true,
|
|
|
|
automergePatch: true,
|
2019-03-07 14:15:01 +00:00
|
|
|
gomodTidy: true,
|
feat: rangeStrategy (#1954)
This PR replaces the existing `pinVersions`, `upgradeInRange` and `versionStrategy` settings with a single one: `rangeStrategy`.
Previously:
- `pinVersions` could be `true` or `false`, but defaulted to `null`, which meant that Renovate would decide. `true` meant that Renovate would replace existing ranges like `^1.0.0` with an exact/pinned version such as `1.2.0`.
- `upgradeInRange` could be true or false, default to false. If `true`, it would mean Renovate would replace an existing range like `^1.0.0` with something like `^1.2.0`
- `versionStrategy` could be `replace` or `widen` and was mainly used for `peerDependencies` to widen existing ranges, e.g. from `^1.0.0` to `^1.0.0 || ^2.0.0`
It was possible to set conflicting settings, e.g. configuring `pinVersions=true` and `upgradeInRange=true`.
Now, we combine them into a single setting: `rangeStrategy`:
- `auto` = Renovate decides (this will be done on a manager-by-manager basis)
- `pin` = convert ranges to exact versions
- `bump` = same as `upgradeInRange` previously, e.g. bump the range even if the new version satisifies the existing range
- `replace` = Same as pinVersions === false && upgradeInRange === false, i.e. only replace the range if the new version falls outside it
- `widen` = Same as previous versionStrategy==='widen'
2018-05-17 05:16:13 +00:00
|
|
|
upgradeInRange: true,
|
2018-06-26 11:51:50 +00:00
|
|
|
automergeType: 'branch-push',
|
2018-01-12 06:47:18 +00:00
|
|
|
baseBranch: 'next',
|
2018-12-31 05:46:00 +00:00
|
|
|
renovateFork: true,
|
2017-08-26 19:28:29 +00:00
|
|
|
ignoreNodeModules: true,
|
2018-03-04 06:08:19 +00:00
|
|
|
node: {
|
|
|
|
enabled: true,
|
|
|
|
},
|
2017-10-20 11:15:00 +00:00
|
|
|
meteor: true,
|
2017-08-14 05:49:33 +00:00
|
|
|
autodiscover: 'true',
|
2017-08-23 09:50:05 +00:00
|
|
|
schedule: 'on the last day of the month',
|
2017-08-04 10:34:42 +00:00
|
|
|
commitMessage: '{{semanticPrefix}}some commit message',
|
|
|
|
prTitle: '{{semanticPrefix}}some pr title',
|
|
|
|
semanticPrefix: 'fix(deps): ',
|
2018-09-21 03:43:51 +00:00
|
|
|
commitMessageExtra: '{{currentVersion}} something',
|
2018-04-28 12:05:39 +00:00
|
|
|
pathRules: [
|
|
|
|
{
|
|
|
|
paths: ['examples/**'],
|
|
|
|
extends: ['foo'],
|
|
|
|
},
|
|
|
|
],
|
feat: rangeStrategy (#1954)
This PR replaces the existing `pinVersions`, `upgradeInRange` and `versionStrategy` settings with a single one: `rangeStrategy`.
Previously:
- `pinVersions` could be `true` or `false`, but defaulted to `null`, which meant that Renovate would decide. `true` meant that Renovate would replace existing ranges like `^1.0.0` with an exact/pinned version such as `1.2.0`.
- `upgradeInRange` could be true or false, default to false. If `true`, it would mean Renovate would replace an existing range like `^1.0.0` with something like `^1.2.0`
- `versionStrategy` could be `replace` or `widen` and was mainly used for `peerDependencies` to widen existing ranges, e.g. from `^1.0.0` to `^1.0.0 || ^2.0.0`
It was possible to set conflicting settings, e.g. configuring `pinVersions=true` and `upgradeInRange=true`.
Now, we combine them into a single setting: `rangeStrategy`:
- `auto` = Renovate decides (this will be done on a manager-by-manager basis)
- `pin` = convert ranges to exact versions
- `bump` = same as `upgradeInRange` previously, e.g. bump the range even if the new version satisifies the existing range
- `replace` = Same as pinVersions === false && upgradeInRange === false, i.e. only replace the range if the new version falls outside it
- `widen` = Same as previous versionStrategy==='widen'
2018-05-17 05:16:13 +00:00
|
|
|
peerDependencies: {
|
|
|
|
versionStrategy: 'widen',
|
|
|
|
},
|
2017-08-18 17:47:13 +00:00
|
|
|
packageRules: [
|
|
|
|
{
|
|
|
|
packagePatterns: '^(@angular|typescript)',
|
|
|
|
groupName: ['angular packages'],
|
2017-10-17 09:16:02 +00:00
|
|
|
excludedPackageNames: 'foo',
|
2017-08-18 17:47:13 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
packagePatterns: ['^foo'],
|
|
|
|
groupName: ['foo'],
|
|
|
|
},
|
2017-08-03 05:55:59 +00:00
|
|
|
{
|
|
|
|
packageName: 'angular',
|
|
|
|
packagePattern: 'ang',
|
|
|
|
enabled: false,
|
|
|
|
},
|
|
|
|
],
|
2018-11-16 11:16:37 +00:00
|
|
|
exposeEnv: true,
|
2017-10-23 07:14:50 +00:00
|
|
|
lockFileMaintenance: {
|
2018-11-16 11:16:37 +00:00
|
|
|
exposeEnv: false,
|
2018-11-08 12:21:36 +00:00
|
|
|
gitFs: true,
|
2017-08-21 11:41:48 +00:00
|
|
|
automerge: 'any',
|
2017-10-14 05:03:44 +00:00
|
|
|
schedule: 'before 5am every day',
|
2017-08-21 11:41:48 +00:00
|
|
|
},
|
|
|
|
devDependencies: {
|
|
|
|
automerge: 'minor',
|
2017-10-23 07:14:50 +00:00
|
|
|
schedule: null,
|
2017-08-21 11:41:48 +00:00
|
|
|
},
|
2018-04-28 12:05:39 +00:00
|
|
|
nvmrc: {
|
|
|
|
pathRules: [
|
|
|
|
{
|
|
|
|
paths: ['node/**'],
|
|
|
|
extends: ['node'],
|
|
|
|
},
|
|
|
|
],
|
|
|
|
},
|
2017-08-02 12:05:45 +00:00
|
|
|
depTypes: [
|
|
|
|
'dependencies',
|
|
|
|
{
|
|
|
|
depType: 'optionalDependencies',
|
|
|
|
respectLatest: false,
|
2017-08-22 08:58:53 +00:00
|
|
|
automerge: 'minor',
|
2017-08-23 09:50:05 +00:00
|
|
|
schedule: 'before 5am on Mondays',
|
2017-08-02 12:05:45 +00:00
|
|
|
},
|
|
|
|
],
|
2018-12-09 10:39:35 +00:00
|
|
|
raiseDeprecationWarnings: false,
|
2017-08-02 06:54:42 +00:00
|
|
|
};
|
2017-08-10 20:35:05 +00:00
|
|
|
const parentConfig = { ...defaultConfig, semanticCommits: false };
|
2017-08-02 06:54:42 +00:00
|
|
|
const { isMigrated, migratedConfig } = configMigration.migrateConfig(
|
2017-08-04 12:49:02 +00:00
|
|
|
config,
|
2017-08-10 20:35:05 +00:00
|
|
|
parentConfig
|
2017-08-02 06:54:42 +00:00
|
|
|
);
|
2018-04-29 21:07:39 +00:00
|
|
|
expect(migratedConfig).toMatchSnapshot();
|
2017-08-02 06:54:42 +00:00
|
|
|
expect(isMigrated).toBe(true);
|
2017-08-02 12:05:45 +00:00
|
|
|
expect(migratedConfig.depTypes).not.toBeDefined();
|
2018-03-04 13:36:45 +00:00
|
|
|
expect(migratedConfig.automerge).toEqual(false);
|
feat: rangeStrategy (#1954)
This PR replaces the existing `pinVersions`, `upgradeInRange` and `versionStrategy` settings with a single one: `rangeStrategy`.
Previously:
- `pinVersions` could be `true` or `false`, but defaulted to `null`, which meant that Renovate would decide. `true` meant that Renovate would replace existing ranges like `^1.0.0` with an exact/pinned version such as `1.2.0`.
- `upgradeInRange` could be true or false, default to false. If `true`, it would mean Renovate would replace an existing range like `^1.0.0` with something like `^1.2.0`
- `versionStrategy` could be `replace` or `widen` and was mainly used for `peerDependencies` to widen existing ranges, e.g. from `^1.0.0` to `^1.0.0 || ^2.0.0`
It was possible to set conflicting settings, e.g. configuring `pinVersions=true` and `upgradeInRange=true`.
Now, we combine them into a single setting: `rangeStrategy`:
- `auto` = Renovate decides (this will be done on a manager-by-manager basis)
- `pin` = convert ranges to exact versions
- `bump` = same as `upgradeInRange` previously, e.g. bump the range even if the new version satisifies the existing range
- `replace` = Same as pinVersions === false && upgradeInRange === false, i.e. only replace the range if the new version falls outside it
- `widen` = Same as previous versionStrategy==='widen'
2018-05-17 05:16:13 +00:00
|
|
|
expect(migratedConfig.packageRules).toHaveLength(7);
|
2019-05-21 11:20:09 +00:00
|
|
|
expect(migratedConfig.hostRules).toHaveLength(1);
|
2017-08-02 06:54:42 +00:00
|
|
|
});
|
2017-08-23 10:38:47 +00:00
|
|
|
it('migrates before and after schedules', () => {
|
2017-08-23 09:50:05 +00:00
|
|
|
const config = {
|
2018-04-30 06:21:48 +00:00
|
|
|
major: {
|
2017-08-24 05:04:04 +00:00
|
|
|
schedule: 'after 10pm and before 7am',
|
|
|
|
},
|
2018-04-30 06:21:48 +00:00
|
|
|
minor: {
|
2017-08-24 05:04:04 +00:00
|
|
|
schedule: 'after 10pm and before 7am on every weekday',
|
|
|
|
},
|
2017-08-23 09:50:05 +00:00
|
|
|
};
|
|
|
|
const parentConfig = { ...defaultConfig };
|
|
|
|
const { isMigrated, migratedConfig } = configMigration.migrateConfig(
|
|
|
|
config,
|
|
|
|
parentConfig
|
|
|
|
);
|
|
|
|
expect(migratedConfig).toMatchSnapshot();
|
|
|
|
expect(isMigrated).toBe(true);
|
2018-04-30 06:21:48 +00:00
|
|
|
expect(migratedConfig.major.schedule.length).toBe(2);
|
|
|
|
expect(migratedConfig.major.schedule[0]).toEqual('after 10pm');
|
|
|
|
expect(migratedConfig.major.schedule[1]).toEqual('before 7am');
|
|
|
|
expect(migratedConfig.minor.schedule).toMatchSnapshot();
|
|
|
|
expect(migratedConfig.minor.schedule.length).toBe(2);
|
|
|
|
expect(migratedConfig.minor.schedule[0]).toEqual(
|
2017-08-24 05:04:04 +00:00
|
|
|
'after 10pm every weekday'
|
|
|
|
);
|
2018-04-30 06:21:48 +00:00
|
|
|
expect(migratedConfig.minor.schedule[1]).toEqual(
|
2017-08-24 05:04:04 +00:00
|
|
|
'before 7am every weekday'
|
|
|
|
);
|
2017-08-23 09:50:05 +00:00
|
|
|
});
|
2017-09-01 09:27:54 +00:00
|
|
|
it('migrates every friday', () => {
|
|
|
|
const config = {
|
|
|
|
schedule: 'every friday',
|
|
|
|
};
|
|
|
|
const parentConfig = { ...defaultConfig };
|
|
|
|
const { isMigrated, migratedConfig } = configMigration.migrateConfig(
|
|
|
|
config,
|
|
|
|
parentConfig
|
|
|
|
);
|
|
|
|
expect(isMigrated).toBe(true);
|
|
|
|
expect(migratedConfig.schedule).toEqual('on friday');
|
|
|
|
});
|
2017-11-24 06:14:58 +00:00
|
|
|
it('migrates semantic prefix with no scope', () => {
|
|
|
|
const config = {
|
|
|
|
semanticPrefix: 'fix',
|
|
|
|
};
|
|
|
|
const parentConfig = { ...defaultConfig };
|
|
|
|
const { isMigrated, migratedConfig } = configMigration.migrateConfig(
|
|
|
|
config,
|
|
|
|
parentConfig
|
|
|
|
);
|
|
|
|
expect(isMigrated).toBe(true);
|
2019-04-02 14:59:27 +00:00
|
|
|
expect(migratedConfig.semanticCommitScope).toBeNull();
|
2017-11-24 06:14:58 +00:00
|
|
|
});
|
2017-09-01 09:27:54 +00:00
|
|
|
it('does not migrate every weekday', () => {
|
|
|
|
const config = {
|
|
|
|
schedule: 'every weekday',
|
|
|
|
};
|
|
|
|
const parentConfig = { ...defaultConfig };
|
|
|
|
const { isMigrated, migratedConfig } = configMigration.migrateConfig(
|
|
|
|
config,
|
|
|
|
parentConfig
|
|
|
|
);
|
|
|
|
expect(isMigrated).toBe(false);
|
|
|
|
expect(migratedConfig.schedule).toEqual(config.schedule);
|
|
|
|
});
|
2017-08-23 10:38:47 +00:00
|
|
|
it('does not migrate multi days', () => {
|
|
|
|
const config = {
|
|
|
|
schedule: 'after 5:00pm on wednesday and thursday',
|
|
|
|
};
|
|
|
|
const parentConfig = { ...defaultConfig };
|
|
|
|
const { isMigrated, migratedConfig } = configMigration.migrateConfig(
|
|
|
|
config,
|
|
|
|
parentConfig
|
|
|
|
);
|
|
|
|
expect(migratedConfig).toMatchSnapshot();
|
|
|
|
expect(isMigrated).toBe(false);
|
|
|
|
expect(migratedConfig.schedule).toEqual(config.schedule);
|
|
|
|
});
|
2017-09-01 09:27:54 +00:00
|
|
|
it('does not migrate hour range', () => {
|
|
|
|
const config = {
|
|
|
|
schedule: 'after 1:00pm and before 5:00pm',
|
|
|
|
};
|
|
|
|
const parentConfig = { ...defaultConfig };
|
|
|
|
const { isMigrated, migratedConfig } = configMigration.migrateConfig(
|
|
|
|
config,
|
|
|
|
parentConfig
|
|
|
|
);
|
|
|
|
expect(migratedConfig.schedule).toEqual(config.schedule);
|
|
|
|
expect(isMigrated).toBe(false);
|
|
|
|
});
|
2017-08-18 17:47:13 +00:00
|
|
|
it('it migrates packages', () => {
|
|
|
|
const config = {
|
|
|
|
packages: [
|
|
|
|
{
|
|
|
|
packagePatterns: '^(@angular|typescript)',
|
|
|
|
groupName: ['angular packages'],
|
|
|
|
},
|
|
|
|
],
|
|
|
|
};
|
|
|
|
const parentConfig = { ...defaultConfig };
|
|
|
|
const { isMigrated, migratedConfig } = configMigration.migrateConfig(
|
|
|
|
config,
|
|
|
|
parentConfig
|
|
|
|
);
|
|
|
|
expect(isMigrated).toBe(true);
|
|
|
|
expect(migratedConfig).toMatchSnapshot();
|
|
|
|
});
|
2017-08-22 04:20:23 +00:00
|
|
|
it('it overrides existing automerge setting', () => {
|
|
|
|
const config = {
|
|
|
|
automerge: 'minor',
|
|
|
|
packages: [
|
|
|
|
{
|
|
|
|
packagePatterns: '^(@angular|typescript)',
|
|
|
|
automerge: 'patch',
|
|
|
|
},
|
|
|
|
],
|
|
|
|
};
|
|
|
|
const parentConfig = { ...defaultConfig };
|
|
|
|
const { isMigrated, migratedConfig } = configMigration.migrateConfig(
|
|
|
|
config,
|
|
|
|
parentConfig
|
|
|
|
);
|
|
|
|
expect(isMigrated).toBe(true);
|
|
|
|
expect(migratedConfig).toMatchSnapshot();
|
2018-03-04 13:36:45 +00:00
|
|
|
expect(migratedConfig.packageRules[0].minor.automerge).toBe(false);
|
2017-08-22 04:20:23 +00:00
|
|
|
});
|
2017-08-02 06:54:42 +00:00
|
|
|
it('it does not migrate config', () => {
|
|
|
|
const config = {
|
|
|
|
enabled: true,
|
2017-08-04 12:49:02 +00:00
|
|
|
semanticCommits: true,
|
2018-05-17 05:40:29 +00:00
|
|
|
separateMinorPatch: true,
|
2017-08-02 06:54:42 +00:00
|
|
|
};
|
|
|
|
const { isMigrated, migratedConfig } = configMigration.migrateConfig(
|
|
|
|
config
|
|
|
|
);
|
|
|
|
expect(isMigrated).toBe(false);
|
|
|
|
expect(migratedConfig).toMatchObject(config);
|
|
|
|
});
|
2017-08-02 12:41:25 +00:00
|
|
|
it('it migrates subconfig', () => {
|
|
|
|
const config = {
|
|
|
|
lockFileMaintenance: {
|
|
|
|
depTypes: [
|
|
|
|
'dependencies',
|
|
|
|
{
|
|
|
|
depType: 'optionalDependencies',
|
|
|
|
respectLatest: false,
|
|
|
|
},
|
|
|
|
],
|
|
|
|
},
|
|
|
|
};
|
|
|
|
const { isMigrated, migratedConfig } = configMigration.migrateConfig(
|
2017-08-04 12:49:02 +00:00
|
|
|
config,
|
|
|
|
defaultConfig
|
2017-08-02 12:41:25 +00:00
|
|
|
);
|
|
|
|
expect(isMigrated).toBe(true);
|
|
|
|
expect(migratedConfig).toMatchSnapshot();
|
2018-04-29 21:07:39 +00:00
|
|
|
expect(migratedConfig.lockFileMaintenance.packageRules).toHaveLength(1);
|
2017-08-02 12:41:25 +00:00
|
|
|
expect(
|
2018-04-29 21:07:39 +00:00
|
|
|
migratedConfig.lockFileMaintenance.packageRules[0].respectLatest
|
2017-08-02 12:41:25 +00:00
|
|
|
).toBe(false);
|
|
|
|
});
|
2018-03-04 06:08:19 +00:00
|
|
|
it('it migrates node to travis', () => {
|
|
|
|
const config = {
|
|
|
|
node: {
|
|
|
|
enabled: true,
|
|
|
|
supportPolicy: ['lts'],
|
|
|
|
automerge: 'none',
|
|
|
|
},
|
|
|
|
};
|
|
|
|
const { isMigrated, migratedConfig } = configMigration.migrateConfig(
|
|
|
|
config,
|
|
|
|
defaultConfig
|
|
|
|
);
|
|
|
|
expect(migratedConfig).toMatchSnapshot();
|
|
|
|
expect(isMigrated).toBe(true);
|
|
|
|
expect(migratedConfig.node.enabled).toBeUndefined();
|
|
|
|
expect(migratedConfig.travis.enabled).toBe(true);
|
|
|
|
expect(migratedConfig.node.supportPolicy).toBeDefined();
|
|
|
|
});
|
2018-05-01 07:21:15 +00:00
|
|
|
it('it migrates packageFiles', () => {
|
|
|
|
const config = {
|
|
|
|
packageFiles: [
|
|
|
|
'package.json',
|
|
|
|
{ packageFile: 'backend/package.json', pinVersions: false },
|
|
|
|
{ packageFile: 'frontend/package.json', pinVersions: true },
|
|
|
|
{
|
|
|
|
packageFile: 'other/package.json',
|
|
|
|
devDependencies: { pinVersions: true },
|
|
|
|
dependencies: { pinVersions: true },
|
|
|
|
},
|
|
|
|
],
|
|
|
|
};
|
|
|
|
const { isMigrated, migratedConfig } = configMigration.migrateConfig(
|
|
|
|
config,
|
|
|
|
defaultConfig
|
|
|
|
);
|
|
|
|
expect(migratedConfig).toMatchSnapshot();
|
|
|
|
expect(isMigrated).toBe(true);
|
|
|
|
expect(migratedConfig.includePaths).toHaveLength(4);
|
|
|
|
expect(migratedConfig.packageFiles).toBeUndefined();
|
|
|
|
expect(migratedConfig.packageRules).toHaveLength(4);
|
feat: rangeStrategy (#1954)
This PR replaces the existing `pinVersions`, `upgradeInRange` and `versionStrategy` settings with a single one: `rangeStrategy`.
Previously:
- `pinVersions` could be `true` or `false`, but defaulted to `null`, which meant that Renovate would decide. `true` meant that Renovate would replace existing ranges like `^1.0.0` with an exact/pinned version such as `1.2.0`.
- `upgradeInRange` could be true or false, default to false. If `true`, it would mean Renovate would replace an existing range like `^1.0.0` with something like `^1.2.0`
- `versionStrategy` could be `replace` or `widen` and was mainly used for `peerDependencies` to widen existing ranges, e.g. from `^1.0.0` to `^1.0.0 || ^2.0.0`
It was possible to set conflicting settings, e.g. configuring `pinVersions=true` and `upgradeInRange=true`.
Now, we combine them into a single setting: `rangeStrategy`:
- `auto` = Renovate decides (this will be done on a manager-by-manager basis)
- `pin` = convert ranges to exact versions
- `bump` = same as `upgradeInRange` previously, e.g. bump the range even if the new version satisifies the existing range
- `replace` = Same as pinVersions === false && upgradeInRange === false, i.e. only replace the range if the new version falls outside it
- `widen` = Same as previous versionStrategy==='widen'
2018-05-17 05:16:13 +00:00
|
|
|
expect(migratedConfig.packageRules[0].rangeStrategy).toBe('replace');
|
|
|
|
expect(migratedConfig.packageRules[1].rangeStrategy).toBe('pin');
|
2018-05-01 07:21:15 +00:00
|
|
|
});
|
|
|
|
it('it migrates more packageFiles', () => {
|
|
|
|
const config = {
|
|
|
|
packageFiles: [
|
|
|
|
{
|
|
|
|
packageFile: 'package.json',
|
|
|
|
packageRules: [
|
|
|
|
{
|
|
|
|
pinVersions: true,
|
|
|
|
depTypeList: ['devDependencies'],
|
|
|
|
},
|
|
|
|
{
|
|
|
|
pinVersions: true,
|
|
|
|
depTypeList: ['dependencies'],
|
|
|
|
},
|
|
|
|
],
|
|
|
|
},
|
|
|
|
],
|
|
|
|
};
|
|
|
|
const { isMigrated, migratedConfig } = configMigration.migrateConfig(
|
|
|
|
config,
|
|
|
|
defaultConfig
|
|
|
|
);
|
|
|
|
expect(migratedConfig).toMatchSnapshot();
|
|
|
|
expect(isMigrated).toBe(true);
|
|
|
|
expect(migratedConfig.includePaths).toHaveLength(1);
|
|
|
|
expect(migratedConfig.packageFiles).toBeUndefined();
|
|
|
|
expect(migratedConfig.packageRules).toHaveLength(2);
|
|
|
|
});
|
2017-08-02 06:54:42 +00:00
|
|
|
});
|
|
|
|
});
|