content: /* eslint-disable camelcase */
  import React from 'react';
  import { toMatchImageSnapshot } from 'jest-image-snapshot';
  import screenshot from 'react-screenshot-renderer';
  
  import {
    Rules,
    TagRules,
    DefaultRules,
    ToggleFirewallForm,
    ToggleInactiveForm
  } from '../firewall';
  
  import Theme from '@mocks/theme';
  
  expect.extend({
    toMatchImageSnapshot
  });
  
  const rules = [
    {
      id: '3473327e-6d0c-4747-97c5-ced1260a7e42',
      enabled: true,
      rule_str: 'FROM any TO all vms ALLOW icmp TYPE 8 CODE 0',
      rule_obj: {
        from: [['wildcard', 'any']],
        to: [['wildcard', 'vmall']],
        action: 'allow',
        protocol: {
          name: 'icmp',
          targets: ['8:0']
        },
        isWildcard: true,
        tags: []
      },
      global: true,
      description: null
    },
    {
      id: '24d55d2f-12ba-4935-9de9-ac305b8a40a5',
      enabled: true,
      rule_str: 'FROM any TO all vms ALLOW icmp6 TYPE all',
      rule_obj: {
        from: [['wildcard', 'any']],
        to: [['wildcard', 'vmall']],
        action: 'allow',
        protocol: {
          name: 'icmp6',
          targets: ['all']
        },
        isWildcard: true,
        tags: []
      },
      global: true,
      description: 'allow all ICMPv6 types'
    },
    {
      id: '4bd8b2e2-981b-474b-9b8b-0b53fecb4b71',
      enabled: false,
      rule_str: 'FROM all vms TO all vms ALLOW tcp PORT all',
      rule_obj: {
        from: [['wildcard', 'vmall']],
        to: [['wildcard', 'vmall']],
        action: 'allow',
        protocol: {
          name: 'tcp',
          targets: ['all']
        },
        isWildcard: true,
        tags: []
      },
      global: null,
      description: null
    },
    {
      id: 'af549024-b3b1-43bf-8a66-49c2b2dc5640',
      enabled: false,
      rule_str: 'FROM all vms TO all vms ALLOW tcp PORT all',
      rule_obj: {
        from: [['wildcard', 'vmall']],
        to: [['wildcard', 'vmall']],
        action: 'allow',
        protocol: {
          name: 'tcp',
          targets: ['all']
        },
        isWildcard: true,
        tags: []
      },
      global: null,
      description: null
    },
    {
      id: '9e5a152a-582b-4525-909e-f9c55deb7f03',
      enabled: false,
      rule_str: 'FROM any TO tag "wat" ALLOW tcp PORT all',
      rule_obj: {
        from: [['wildcard', 'any']],
        to: [['tag', 'wat']],
        action: 'allow',
        protocol: {
          name: 'tcp',
          targets: ['all']
        },
        isWildcard: false,
        tags: ['wat']
      },
      global: null,
      description: null
    }
  ];
  
  it('<Rules/>', async () => {
    expect(
      await screenshot(
        <Theme ss>
          <Rules />
        </Theme>
      )
    ).toMatchImageSnapshot();
  });
  
  it('<Rules rules />', async () => {
    expect(
      await screenshot(
        <Theme ss>
          <Rules rules={rules} />
        </Theme>
      )
    ).toMatchImageSnapshot();
  });
  
  it('<DefaultRules />', async () => {
    expect(
      await screenshot(
        <Theme ss>
          <DefaultRules />
        </Theme>
      )
    ).toMatchImageSnapshot();
  });
  
  it('<DefaultRules rules />', async () => {
    expect(
      await screenshot(
        <Theme ss>
          <DefaultRules rules={rules} />
        </Theme>
      )
    ).toMatchImageSnapshot();
  });
  
  it('<TagRules />', async () => {
    expect(
      await screenshot(
        <Theme ss>
          <TagRules />
        </Theme>
      )
    ).toMatchImageSnapshot();
  });
  
  it('<TagRules rules />', async () => {
    expect(
      await screenshot(
        <Theme ss>
          <TagRules rules={rules} />
        </Theme>
      )
    ).toMatchImageSnapshot();
  });
  
  it('<ToggleFirewallForm />', async () => {
    expect(
      await screenshot(
        <Theme ss>
          <ToggleFirewallForm />
        </Theme>
      )
    ).toMatchImageSnapshot();
  });
  
  it('<ToggleFirewallForm submitting />', async () => {
    expect(
      await screenshot(
        <Theme ss>
          <ToggleFirewallForm submitting />
        </Theme>
      )
    ).toMatchImageSnapshot();
  });
  
  it('<ToggleInactiveForm />', async () => {
    expect(
      await screenshot(
        <Theme ss>
          <ToggleInactiveForm />
        </Theme>
      )
    ).toMatchImageSnapshot();
  });
  