[
  {
    "fixture": "valid",
    "payload": {
      "name": "Fictional feed",
      "refresh_minutes": 30,
      "enabled": true,
      "tags": [
        "original"
      ]
    },
    "expected_valid": true,
    "actual_valid": true,
    "errors": []
  },
  {
    "fixture": "missing_name",
    "payload": {
      "refresh_minutes": 30,
      "enabled": true
    },
    "expected_valid": false,
    "actual_valid": false,
    "errors": [
      {
        "path": [],
        "message": "'name' is a required property"
      }
    ]
  },
  {
    "fixture": "wrong_type",
    "payload": {
      "name": "Demo",
      "refresh_minutes": "30",
      "enabled": true
    },
    "expected_valid": false,
    "actual_valid": false,
    "errors": [
      {
        "path": [
          "refresh_minutes"
        ],
        "message": "'30' is not of type 'integer'"
      }
    ]
  },
  {
    "fixture": "boolean_is_not_integer",
    "payload": {
      "name": "Demo",
      "refresh_minutes": true,
      "enabled": true
    },
    "expected_valid": false,
    "actual_valid": false,
    "errors": [
      {
        "path": [
          "refresh_minutes"
        ],
        "message": "True is not of type 'integer'"
      }
    ]
  },
  {
    "fixture": "too_frequent",
    "payload": {
      "name": "Demo",
      "refresh_minutes": 0,
      "enabled": true
    },
    "expected_valid": false,
    "actual_valid": false,
    "errors": [
      {
        "path": [
          "refresh_minutes"
        ],
        "message": "0 is less than the minimum of 5"
      }
    ]
  },
  {
    "fixture": "unknown_field",
    "payload": {
      "name": "Demo",
      "refresh_minutes": 30,
      "enabled": true,
      "secret": "not allowed"
    },
    "expected_valid": false,
    "actual_valid": false,
    "errors": [
      {
        "path": [],
        "message": "Additional properties are not allowed ('secret' was unexpected)"
      }
    ]
  },
  {
    "fixture": "duplicate_tags",
    "payload": {
      "name": "Demo",
      "refresh_minutes": 30,
      "enabled": true,
      "tags": [
        "a",
        "a"
      ]
    },
    "expected_valid": false,
    "actual_valid": false,
    "errors": [
      {
        "path": [
          "tags"
        ],
        "message": "['a', 'a'] has non-unique elements"
      }
    ]
  },
  {
    "fixture": "wrong_item",
    "payload": {
      "name": "Demo",
      "refresh_minutes": 30,
      "enabled": true,
      "tags": [
        1
      ]
    },
    "expected_valid": false,
    "actual_valid": false,
    "errors": [
      {
        "path": [
          "tags",
          0
        ],
        "message": "1 is not of type 'string'"
      }
    ]
  },
  {
    "fixture": "upper_bound",
    "payload": {
      "name": "Demo",
      "refresh_minutes": 1440,
      "enabled": false
    },
    "expected_valid": true,
    "actual_valid": true,
    "errors": []
  },
  {
    "fixture": "above_bound",
    "payload": {
      "name": "Demo",
      "refresh_minutes": 1441,
      "enabled": false
    },
    "expected_valid": false,
    "actual_valid": false,
    "errors": [
      {
        "path": [
          "refresh_minutes"
        ],
        "message": "1441 is greater than the maximum of 1440"
      }
    ]
  }
]
