// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html

exports[`config/migration > migrateConfig(config, parentConfig) > does not migrate multi days 1`] = `
{
  "schedule": "after 5:00pm on wednesday and thursday",
}
`;

exports[`config/migration > migrateConfig(config, parentConfig) > migrates before and after schedules 1`] = `
{
  "major": {
    "schedule": [
      "after 10pm",
      "before 7am",
    ],
  },
  "minor": {
    "schedule": [
      "after 10pm every weekday",
      "before 7am every weekday",
    ],
  },
}
`;

exports[`config/migration > migrateConfig(config, parentConfig) > migrates config 1`] = `
{
  "additionalBranchPrefix": "{{parentDir}}-",
  "allowCustomCrateRegistries": true,
  "allowScripts": true,
  "autodiscover": true,
  "automerge": false,
  "automergeType": "branch",
  "baseBranchPatterns": [
    "next",
  ],
  "binarySource": "global",
  "branchName": "{{{branchPrefix}}}{{{additionalBranchPrefix}}}{{{branchTopic}}}{{{packageFileDir}}}",
  "branchPrefix": "renovate/",
  "commitMessage": "{{#if semanticCommitType}}{{semanticCommitType}}{{#if semanticCommitScope}}({{semanticCommitScope}}){{/if}}: {{/if}}some commit message {{depName}} {{packageName}}",
  "constraints": {
    "python": "3.7",
  },
  "dependencyDashboard": true,
  "dependencyDashboardTitle": "foo",
  "enabled": true,
  "enabledManagers": [
    "npm",
  ],
  "exposeAllEnv": true,
  "extends": [
    ":automergeBranch",
    ":skipArtifactsUpdate",
    "config:js-app",
    "config:js-lib",
    ":dependencyDashboard",
  ],
  "forkProcessing": "enabled",
  "hostRules": [
    {
      "hostType": "docker",
      "matchHost": "https://docker.io",
      "password": "some-password",
      "username": "some-username",
    },
  ],
  "ignorePaths": [
    "node_modules/",
  ],
  "lockFileMaintenance": {
    "automerge": true,
    "exposeAllEnv": false,
    "schedule": "before 5am",
  },
  "major": {
    "automerge": false,
  },
  "meteor": {
    "enabled": true,
  },
  "minor": {
    "automerge": true,
  },
  "npmrc": "",
  "nvmrc": {
    "packageRules": [
      {
        "extends": [
          "node",
        ],
        "matchFileNames": [
          "node/**",
        ],
      },
    ],
  },
  "onboarding": false,
  "packageRules": [
    {
      "enabled": false,
      "matchCategories": [
        "python",
      ],
      "matchPackageNames": [
        "foo",
      ],
    },
    {
      "enabled": false,
      "matchCategories": [
        "dotnet",
      ],
    },
    {
      "groupName": "angular packages",
      "matchPackageNames": [
        "/^(@angular|typescript)/",
        "!foo",
      ],
    },
    {
      "groupName": "foo",
      "matchPackageNames": [
        "/^foo/",
      ],
    },
    {
      "enabled": false,
      "matchPackageNames": [
        "angular",
        "/ang/",
      ],
    },
    {
      "matchPackageNames": [
        "guava",
      ],
      "versioning": "maven",
    },
    {
      "automerge": true,
      "matchDepTypes": [
        "bar",
      ],
      "matchPackageNames": [
        "foo",
      ],
    },
    {
      "extends": [
        "foo",
      ],
      "matchFileNames": [
        "examples/**",
      ],
    },
    {
      "matchDepTypes": [
        "peerDependencies",
      ],
      "rangeStrategy": "widen",
    },
    {
      "major": {
        "automerge": false,
      },
      "matchDepTypes": [
        "devDependencies",
      ],
      "minor": {
        "automerge": true,
      },
      "schedule": null,
    },
    {
      "major": {
        "automerge": false,
      },
      "matchDepTypes": [
        "optionalDependencies",
      ],
      "minor": {
        "automerge": true,
      },
      "respectLatest": false,
      "schedule": "before 5am on Monday",
    },
  ],
  "patch": {
    "automerge": true,
  },
  "pip_setup": {
    "rebaseWhen": "never",
  },
  "pipenv": {
    "rebaseWhen": "conflicted",
  },
  "platform": "github",
  "poetry": {
    "rebaseWhen": "behind-base-branch",
    "versioning": "pep440",
  },
  "postUpdateOptions": [
    "gomodTidy",
  ],
  "prTitle": "{{#if semanticCommitType}}{{semanticCommitType}}{{#if semanticCommitScope}}({{semanticCommitScope}}){{/if}}: {{/if}}some pr title",
  "rangeStrategy": "bump",
  "rebaseWhen": "auto",
  "schedule": "on the first day of the month",
  "semanticCommitScope": "deps",
  "semanticCommitType": "fix",
  "separateMajorMinor": true,
  "separateMajorReleases": true,
  "separateMinorPatch": true,
  "skipArtifactsUpdate": true,
  "suppressNotifications": [
    "lockFileErrors",
  ],
  "travis": {
    "enabled": true,
  },
}
`;

exports[`config/migration > migrateConfig(config, parentConfig) > migrates more packageFiles 1`] = `
{
  "includePaths": [
    "package.json",
  ],
  "packageRules": [
    {
      "matchDepTypes": [
        "devDependencies",
      ],
      "matchFileNames": [
        "package.json",
      ],
      "rangeStrategy": "pin",
    },
    {
      "matchDepTypes": [
        "dependencies",
      ],
      "matchFileNames": [
        "package.json",
      ],
      "rangeStrategy": "pin",
    },
  ],
}
`;

exports[`config/migration > migrateConfig(config, parentConfig) > migrates packageFiles 1`] = `
{
  "includePaths": [
    "package.json",
    "backend/package.json",
    "frontend/package.json",
    "other/package.json",
  ],
  "packageRules": [
    {
      "matchFileNames": [
        "backend/package.json",
      ],
      "rangeStrategy": "replace",
    },
    {
      "matchFileNames": [
        "frontend/package.json",
      ],
      "rangeStrategy": "pin",
    },
    {
      "matchDepTypes": [
        "devDependencies",
      ],
      "matchFileNames": [
        "other/package.json",
      ],
      "rangeStrategy": "pin",
    },
    {
      "matchDepTypes": [
        "dependencies",
      ],
      "matchFileNames": [
        "other/package.json",
      ],
      "rangeStrategy": "pin",
    },
  ],
}
`;

exports[`config/migration > migrateConfig(config, parentConfig) > migrates subconfig 1`] = `
{
  "lockFileMaintenance": {
    "packageRules": [
      {
        "matchDepTypes": [
          "optionalDependencies",
        ],
        "respectLatest": false,
      },
    ],
  },
}
`;

exports[`config/migration > migrateConfig(config, parentConfig) > overrides existing automerge setting 1`] = `
{
  "major": {
    "automerge": false,
  },
  "minor": {
    "automerge": true,
  },
  "packageRules": [
    {
      "major": {
        "automerge": false,
      },
      "matchPackageNames": [
        "/^(@angular|typescript)/",
      ],
      "minor": {
        "automerge": false,
      },
      "patch": {
        "automerge": true,
      },
    },
  ],
}
`;

exports[`config/migration > migrates customManagers 1`] = `
{
  "customManagers": [
    {
      "customType": "regex",
      "managerFilePatterns": [
        "/(^|/|\\.)Dockerfile$/",
        "/(^|/)Dockerfile[^/]*$/",
      ],
      "matchStrings": [
        "# renovate: datasource=(?<datasource>[a-z-]+?) depName=(?<depName>[^\\s]+?)(?: lookupName=(?<packageName>[^\\s]+?))?(?: versioning=(?<versioning>[a-z-0-9]+?))?\\s(?:ENV|ARG) .+?_VERSION="?(?<currentValue>.+?)"?\\s",
      ],
    },
    {
      "customType": "regex",
      "managerFilePatterns": [
        "/(^|/|\\.)Dockerfile$/",
        "/(^|/)Dockerfile[^/]*$/",
      ],
      "matchStrings": [
        "# renovate: datasource=(?<datasource>[a-z-]+?) depName=(?<depName>[^\\s]+?)(?: lookupName=(?<holder>[^\\s]+?))?(?: versioning=(?<versioning>[a-z-0-9]+?))?\\s(?:ENV|ARG) .+?_VERSION="?(?<currentValue>.+?)"?\\s",
      ],
      "packageNameTemplate": "{{{holder}}}",
    },
  ],
}
`;

exports[`config/migration > migrates gradle-lite 1`] = `
{
  "gradle": {
    "enabled": true,
    "managerFilePatterns": [
      "/foo/",
    ],
  },
  "packageRules": [
    {
      "matchManagers": [
        "gradle",
      ],
      "separateMinorPatch": true,
    },
  ],
}
`;

exports[`config/migration > migrates nested packageRules 1`] = `
{
  "packageRules": [
    {
      "enabled": false,
      "matchDepTypes": [
        "devDependencies",
      ],
    },
    {
      "automerge": true,
      "groupName": "definitelyTyped",
      "matchPackageNames": [
        "!@types/react-table",
        "@types/**",
      ],
    },
    {
      "automerge": false,
      "matchDepTypes": [
        "dependencies",
      ],
      "matchPackageNames": [
        "!@types/react-table",
      ],
    },
  ],
}
`;
