jonpitch/danger-brewing

View on GitHub
tests/pages/status.js

Summary

Maintainability
A
2 hrs
Test Coverage
import {
  create,
  visitable,
  collection,
  text,
  isVisible,
  clickable
} from 'ember-cli-page-object';

const url = '/status';

export default create({
  visit: visitable(url),
  url,

  hub: {
    scope: 'hub-status',
    isVisible: isVisible(),
    notSetup: isVisible('p[data-test="not-setup"]'),

    addHub: {
      scope: 'div[data-test="add-hub"]',
      isVisible: isVisible(),
      click: clickable('button')
    },

    addTap: {
      scope: 'div[data-test="add-tap"]',
      isVisible: isVisible(),
      click: clickable('button')
    },

    addSensor: {
      scope: 'div[data-test="add-sensor"]',
      isVisible: isVisible(),
      click: clickable('button')
    },

    status: {
      scope: 'div[data-test="status"]',
      isVisible: isVisible(),
      isOnline: isVisible('span[data-test="online"]'),
      isOffline: isVisible('span[data-test="offline"]')
    },

    taps: collection({
      itemScope: 'div[data-test="tap"]',
      item: {
        name: text('div.md-list-item-text h3'),
        type: text('div.md-list-item-text h4'),
        pouring: text('div.md-list-item-text p'),
        hasDelete: isVisible('span[data-test="delete-tap"]'),
        delete: clickable('span[data-test="delete-tap"] button'),
        co2: isVisible('md-icon[aria-label="local-gas-station"]'),
        nitro: isVisible('md-icon[aria-label="ev-station"]')
      }
    }),

    sensors: collection({
      itemScope: 'div[data-test="sensor"]',
      item: {
        name: text('div.md-list-item-text h3'),
        type: text('div.md-list-item-text h4'),
        readout: text('div.md-list-item-text p'),
        hasDelete: isVisible('span[data-test="delete-sensor"]'),
        delete: clickable('span[data-test="delete-sensor"] button')
      }
    })
  }
});