/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: BUSL-1.1
 */

import { is, clickable, attribute, isVisible } from 'ember-cli-page-object';
import ucfirst from 'consul-ui/utils/ucfirst';
export default function (name, items, blankKey = 'all') {
  return items.reduce(function (prev, item, i, arr) {
    // if item is empty then it means 'all'
    // otherwise camelCase based on something-here = somethingHere for the key
    const key =
      item === ''
        ? blankKey
        : item.split('-').reduce(function (prev, item, i, arr) {
            if (i === 0) {
              return item;
            }
            return prev + ucfirst(item);
          });
    return {
      ...prev,
      ...{
        [`${key}IsSelected`]: is('.selected', `[data-test-tab="${name}_${item}"]`),
        [`${key}Url`]: attribute('href', `[data-test-tab="${name}_${item}"] a`),
        [key]: clickable(`[data-test-tab="${name}_${item}"] a`),
        [`${key}IsVisible`]: isVisible(`[data-test-tab="${name}_${item}"] a`),
      },
    };
  }, {});
}
