/*
 * Copyright 2025 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */

import { coverageConfigDefaults, defineConfig } from "vitest/config";

export default defineConfig({
  test: {
    coverage: {
      enabled: true,
      exclude: [
        ...coverageConfigDefaults.exclude,
        "source/{index,otel,types}.ts",
        "source/integrations/index.ts",
        "tsdown.config.ts",
      ],
      provider: "v8",
      reporter: ["html-spa", "html", "text"],

      reportOnFailure: true,

      thresholds: {
        // Reduced this from 100 because it complains about a couple of branches
        // not being covered when they actually are. Probably a bug with reporting.
        branches: 98,
        functions: 100,
        lines: 100,
        statements: 100,
      },
    },
    environment: "node",
    globals: true,
  },
});
