{
  "product": "WP All Import Pro",
  "version": "5.1.0",
  "fixture": "wpai-functional-20261016",
  "executed_at_utc": "2026-10-16T11:02:45+00:00",
  "environment": {
    "wordpress": "7.1.3",
    "php": "8.4.26"
  },
  "tests": [
    {
      "test": "native_csv_first_import",
      "expected": {
        "rows": 3,
        "created": 3,
        "external_ids": [
          "EXT-A",
          "EXT-B",
          "EXT-C"
        ]
      },
      "observed": {
        "rows": {
          "EXT-A": {
            "ID": 5,
            "title": "Fixture Alpha",
            "description": "Imported alpha description",
            "price": "10.00"
          },
          "EXT-B": {
            "ID": 6,
            "title": "Fixture Beta",
            "description": "Imported beta description",
            "price": "20.00"
          },
          "EXT-C": {
            "ID": 7,
            "title": "Fixture Gamma",
            "description": "Imported gamma description",
            "price": "30.00"
          }
        },
        "created": 3,
        "updated": 0,
        "skipped": 0
      },
      "status": "PASS",
      "limitations": [
        "Synthetic posts and custom fields; WooCommerce product addon is not part of this fixture."
      ]
    },
    {
      "test": "same_csv_reimport_keeps_record_ids",
      "expected": {
        "count": 3,
        "post_ids": [
          5,
          6,
          7
        ],
        "new_posts": 0
      },
      "observed": {
        "count": 3,
        "post_ids": [
          5,
          6,
          7
        ],
        "created": 0,
        "updated": 3,
        "skipped": 0
      },
      "status": "PASS",
      "limitations": [
        "Identity is configured with the external_id unique key; changing that key would change the matching strategy."
      ]
    },
    {
      "test": "selective_update_preserves_manual_description",
      "expected": {
        "EXT-A.title": "Fixture Alpha updated",
        "EXT-A.description": "MANUAL_DESCRIPTION_MUST_SURVIVE",
        "EXT-A.price": "12.50",
        "same_ids": true
      },
      "observed": {
        "EXT-A": {
          "ID": 5,
          "title": "Fixture Alpha updated",
          "description": "MANUAL_DESCRIPTION_MUST_SURVIVE",
          "price": "12.50"
        },
        "EXT-B": {
          "ID": 6,
          "title": "Fixture Beta updated",
          "description": "Imported beta description",
          "price": ""
        },
        "EXT-C": {
          "ID": 7,
          "title": "Fixture Gamma updated",
          "description": "Imported gamma description",
          "price": "30.00"
        }
      },
      "status": "PASS",
      "limitations": [
        "Preservation depends on disabling Content updates; this does not claim all editorial fields are automatically protected."
      ]
    },
    {
      "test": "blank_selected_field_and_unselected_content",
      "expected": {
        "EXT-B.price": "",
        "EXT-B.description": "Imported beta description",
        "count": 3
      },
      "observed": {
        "ID": 6,
        "title": "Fixture Beta updated",
        "description": "Imported beta description",
        "price": ""
      },
      "status": "PASS",
      "limitations": [
        "This fixture selects the price field for update and expects the blank cell to clear it. A keep-existing-on-blank policy needs an additional configuration or filter."
      ]
    },
    {
      "test": "nonexistent_and_invalid_post_ids_do_not_create_posts",
      "expected": {
        "created": 0,
        "updated": 0,
        "skipped": 3,
        "count": 3,
        "unchanged_fixture_rows": true
      },
      "observed": {
        "created": 0,
        "updated": 0,
        "skipped": 3,
        "count": 3,
        "imported": 0,
        "iteration": 1,
        "triggered": 0,
        "processing": 0,
        "executing": 0,
        "rows": {
          "EXT-A": {
            "ID": 5,
            "title": "Fixture Alpha updated",
            "description": "MANUAL_DESCRIPTION_MUST_SURVIVE",
            "price": "12.50"
          },
          "EXT-B": {
            "ID": 6,
            "title": "Fixture Beta updated",
            "description": "Imported beta description",
            "price": ""
          },
          "EXT-C": {
            "ID": 7,
            "title": "Fixture Gamma updated",
            "description": "Imported gamma description",
            "price": "30.00"
          }
        }
      },
      "status": "PASS",
      "limitations": [
        "Update-existing-only mode with post-ID matching is tested; this does not assert duplicate or blank external IDs are automatically validated for new imports."
      ]
    }
  ],
  "status": "PASS",
  "method": "Native packaged CSV importer invoked through WP-CLI; database assertions; real browser settings/results captures. No cron scheduling test.",
  "bad_target_log_observation": "Three record sections each logged no matching post, then skipped because creating new posts was disabled. This is a no-match/update-existing-only result, not proof of a separate numeric-ID validation engine.",
  "frontend_http": {
    "status": 200,
    "critical_error": false,
    "live_fixture_table": true,
    "native_import_counters": "0 created, 0 updated, 3 skipped",
    "private_auth_and_noindex_retained": true
  },
  "limitations": [
    "Ordinary synthetic posts and custom fields, not WooCommerce products.",
    "No remote images, cron, external account services, large dataset throughput or 6.x behavior tested.",
    "Same import job and stable unique key tested; not a blanket duplicate/blank identifier guarantee."
  ]
}
