text: /*
   * Licensed to Elasticsearch B.V. under one or more contributor
   * license agreements. See the NOTICE file distributed with
   * this work for additional information regarding copyright
   * ownership. Elasticsearch B.V. licenses this file 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 CONDITIONS OF ANY
   * KIND, either express or implied.  See the License for the
   * specific language governing permissions and limitations
   * under the License.
   */
  
  import path from 'path';
  import fs from 'fs';
  import { services } from './services';
  
  export default async function({ readConfigFile }) {
    const functionalConfig = await readConfigFile(require.resolve('../functional/config'));
  
    // Find all folders in ./plugins since we treat all them as plugin folder
    const allFiles = fs.readdirSync(path.resolve(__dirname, 'plugins'));
    const plugins = allFiles.filter(file =>
      fs.statSync(path.resolve(__dirname, 'plugins', file)).isDirectory()
    );
  
    return {
      testFiles: [
        require.resolve('./test_suites/custom_visualizations'),
        require.resolve('./test_suites/panel_actions'),
        require.resolve('./test_suites/embeddable_explorer'),
        require.resolve('./test_suites/core_plugins'),
        require.resolve('./test_suites/management'),
        require.resolve('./test_suites/bfetch_explorer'),
        require.resolve('./test_suites/doc_views'),
      ],
      services: {
        ...functionalConfig.get('services'),
        ...services,
      },
      pageObjects: functionalConfig.get('pageObjects'),
      servers: functionalConfig.get('servers'),
      esTestCluster: functionalConfig.get('esTestCluster'),
      apps: functionalConfig.get('apps'),
      esArchiver: {
        directory: path.resolve(__dirname, '../es_archives'),
      },
      screenshots: functionalConfig.get('screenshots'),
      junit: {
        reportName: 'Plugin Functional Tests',
      },
      kbnTestServer: {
        ...functionalConfig.get('kbnTestServer'),
        serverArgs: [
          ...functionalConfig.get('kbnTestServer.serverArgs'),
  
          // Required to load new platform plugins via `--plugin-path` flag.
          '--env.name=development',
          ...plugins.map(
            pluginDir => `--plugin-path=${path.resolve(__dirname, 'plugins', pluginDir)}`
          ),
        ],
      },
    };
  }
  