# SheetFusion 2.3.3 Stabilization QA

Use a published Google Sheet with a visible tab, at least 50 rows, links in one column, and at least one removable test column.

1. Clear browser cache or hard refresh.
2. Confirm asset version query strings changed.
3. Insert SheetFusion block.
4. Select Saved Table mode.
5. Confirm Sheet ID and Sheet Name are hidden.
6. Confirm Display, Sorting, Export & Buttons, Server-Side Filter, and Direct Sheet Options are hidden.
7. Confirm there is only one Advanced panel.
8. Confirm saved table editor preview is a stable preview card.
9. Confirm no "Invalid parameter(s): attributes" error appears.
10. Publish/update page.
11. Confirm frontend saved table renders.
12. Confirm saved table settings are used.
13. Confirm block settings do not override saved table settings.
14. In Table Setup, set export to csv,excel,pdf,print.
15. Save table.
16. Reload frontend.
17. Confirm CSV, Excel, Save as PDF, and Print are visible.
18. Click the search box.
19. Type "tourmaline" continuously.
20. Confirm search does not get stuck after 1 letter.
21. Confirm focus remains in the search box.
22. Confirm results update after typing pauses.
23. Clear search and confirm full table returns.
24. Set a column to Safe HTML / Links.
25. Confirm `<a href="/company/tourmaline-oil/">Tourmaline Oil Corp.</a>` renders as a hyperlink.
26. Set the same column to Text.
27. Confirm the HTML is escaped.
28. Customize a column label and type.
29. Sync table.
30. Confirm custom column settings persist.
31. Remove a column from the Google Sheet.
32. Sync table.
33. Confirm stale column disappears.
34. Delete a test table.
35. Confirm rows, columns, logs, and cron event are deleted.
36. Test Google Sheet tab with spaces.
37. Confirm max_rows is honored during saved-table sync.
38. Confirm hidden columns are not returned in public REST rows.
39. Confirm direct shortcode still renders basic output.
40. Confirm Help page shortcode examples are accurate.

## Table Setup UX cleanup

1. Confirm the heading is spelled "Columns".
2. Confirm the long Safe HTML help text no longer repeats on every row.
3. Confirm columns are displayed in a clear table layout.
4. Confirm the Content Type dropdown shows user-friendly labels.
5. Confirm internal saved values remain stable, including `text`, `number`, `currency`, `date`, `url`, `image`, and `html_safe`.
6. Confirm Plain Text helper text explains that HTML is escaped.
7. Confirm Safe HTML / Links helper text explains that trusted limited HTML is allowed.
8. Confirm the Company column can be set to Safe HTML / Links.
9. Confirm Mobile shows High priority, Normal, Low priority, and Hide first on mobile.
10. Confirm existing `mobile_priority = 99` loads as Hide first on mobile.
11. Save and reload, then confirm content type, show, search, sort, filter, and mobile settings persist.
12. Confirm no column shows "none" and "Enabled" at the same time.
13. Confirm Filter = No filter disables frontend filtering for that column.
14. Confirm Filter = Dropdown creates a frontend dropdown filter.
15. Confirm Filter = Text filter creates a frontend text filter.
16. Confirm Filter = Number range creates min/max controls.
17. Confirm Filter = Date range creates start/end date controls.
18. Confirm global search still works separately from filters.
19. Confirm filter settings save and reload correctly.
20. Confirm the frontend only renders filters where `filter_type` is not `none`.
21. Confirm the old Preview heading is now Data Sample.
22. Confirm Data Sample explains frontend settings are not applied.
23. Confirm Data Sample may show raw or escaped HTML values.
24. Confirm Data Sample still confirms imported rows and columns.
25. Confirm a new Table Preview section exists.
26. Confirm unsaved tables show "Save this table to enable Table Preview."
27. Confirm saved tables with no rows show "Sync this table to preview rows."
28. Confirm saved tables with rows render a frontend-style preview.
29. Confirm Table Preview uses the same rendering path as `[sheetfusion table="{table_id}"]`.
30. Set Company to Safe HTML / Links and confirm `<a href="/company/tourmaline-oil/">Tourmaline Oil Corp.</a>` renders as a clickable link in Table Preview.
31. Confirm the same value remains escaped in Data Sample.
32. Confirm hidden columns do not appear in Table Preview.
33. Confirm search, pagination, export buttons, filters, theme, density, sticky header, and height match saved settings in Table Preview.
34. Confirm frontend shortcode output and Table Preview match closely.
35. Confirm Save and Refresh Preview saves changes before updating the preview.
