Super Speedy Imports testing
Testing › Super Speedy Imports
Last full run: version 3.74.4 · 10 November 2026
Summary
Super Speedy Imports has one written list of the test suites that make up its release run. This page describes that list: what each suite proves, how it drives the plugin, and the result of the last full run. Every suite runs on its own WordPress test site with WooCommerce and HPOS order storage switched on. The tests import real CSV files and then read back what was actually stored: products, prices, stock, categories, attributes, images and orders.
Super Speedy Imports can be run three ways: from the browser, from WP-CLI (with one worker or several in parallel) and on a schedule. The same import must give the same result whichever way it runs, so many suites run each case through all three.
The release run
The release run has two parts: the regression suites, run on the code being released, and the release gate, run on the exact ZIP file built for release.
| Suite | What it proves | How it runs |
|---|---|---|
| Import fixture suite | Each test resets the site, imports a real CSV file and compares the products it produced with a stored expected result: simple, variable and grouped products, categories, tags, attributes, custom fields, prices, stock and every import mode. Many tests run the same file a second time and require that nothing changes. It also includes the unit tests for the plugin’s own functions. | WP-CLI |
| Function suite | Individual parts of the plugin inside a real WordPress: counting CSV rows, detecting decimal formats, custom PHP functions in a mapping, database upgrades, email reports, and that a database error is shown to you rather than hidden behind an empty screen. | WordPress itself, called directly |
| Browser suite | Real clicks in a real browser: creating an import, mapping columns, saving conversions, update-only imports when a column is missing, image columns from WooCommerce’s own CSV export, products deleted while an import is running, the Running Import dialog’s stage times, and keeping sold items when deleting missing products, checked with real checkout orders on HPOS, on the older posts order storage and on posts storage without the HPOS tables, for both the paid plugin and Lite. | Browser, and for most cases WP-CLI with four workers and scheduled runs too |
| Deletion safety | A force delete removes WooCommerce’s lookup rows for the deleted products. Delete-all from WP-CLI removes what it should. The trashed and deleted counts on the completion screen, in History and in the email report match the database. | WP-CLI and browser |
| WP-CLI, MCP and import management | The wp ssi commands, their help and flags, refusals when a run is not allowed, creating imports from templates, deleting imports, stopping a run through MCP, and missing imports reported clearly. | WP-CLI, MCP and browser |
| Large-catalogue update | 54 variation price, stock and detail updates beside 50,000 unrelated products and 849,950 metadata rows. Every unrelated product must be left exactly as it was. | Browser, WP-CLI and scheduled |
| Interrupted runs | Imports whose processes are killed part way through, whose database queries are cancelled, or whose browser tab is closed. The run must carry on to completion, a stage that genuinely errors must fail rather than repeat, and Stop must end a run that is retrying. | Browser, WP-CLI and scheduled |
| Release gate | The exact ZIP built for release is installed on a fresh site and tested as you would receive it: a quick install check, the full import suite against that copy (the Lite suite for Lite), browser and REST runs, the security tests, email reports, and the 1,000-post demo import through real clicks, including running it again and stopping and restarting it. Packaging stops if any part fails. | Browser, WP-CLI, REST and scheduled |
Last full run: version 3.74.4
Run on 10 November 2026 against the paid plugin, with WooCommerce and HPOS.
| Suite | Result |
|---|---|
| Import fixture suite | 151 of 151 passed, including 40 unit tests and the repeat-import checks |
| Function suite | 46 of 46 passed |
| Browser suite | 197 of 198 passed. The one failure was in the test itself, not the plugin; the test was fixed and passed when re-run on its own (below). Products deleted during an import: 12 of 12 passed. Keep sold items, update-only with missing columns, image columns, saved conversions and stage times: all passed |
| Deletion safety | Force delete: 3 of 3 passed. Delete-all from WP-CLI: 8 of 8 passed. Deletion counts: 3 of 3 passed |
| WP-CLI, MCP and import management | 92 checks passed |
| Large-catalogue update | Not part of this run |
| Interrupted runs | Not part of this run |
| Release gate, including the Lite suite | Not part of this run |
The one failure, and its fix
One browser test failed: the test that tries to create a new import before the uploaded file has finished being read. The fault was in the test, not the plugin. Since October 2026 the New Import dialog disables Create while it reads the chosen file and refuses to create an import until the read has finished. The old test forced the form to submit during the read, which the plugin correctly refused, so no import was created and the test timed out. A real user cannot do that.
The test now checks what you see: while the file is read, Create is disabled and says it is reading the file; forcing a click or pressing Enter creates nothing; once the read finishes, one click creates exactly one import with all 44 columns mapped. It passes, and it fails when the plugin’s dialog code is deliberately broken in three different ways, so it can still catch a real fault. After the fix only the three import-creation browser tests were re-run, not the whole browser suite. The plugin code was not changed, so the version is still 3.74.4.
What the tests do not cover
- Image identities in the fixture suite. The import fixture suite compares exported products, and that comparison masks image and gallery IDs, parent IDs and default attributes. A wrong image or gallery order could pass it. Those are checked instead by suites that look up the real attachments: the products-deleted-during-import tests and the image-column tests above, and a separate image runner suite.
- Your server. Tests run on our development machine with one PHP version and one MariaDB version, not every host and database you might use.
- External image hosts. Browser image tests serve their images from the test site itself, so they do not test a slow or failing image host.
- Every other plugin. Plugins we integrate with, such as WooCommerce and Secure Custom Fields, are tested where a suite names them. Other plugins on your site are not.
- Targeted suites. Further suites for specific areas, such as image downloading at scale, run when the code they cover changes. They are not counted as part of every release run.
