add fresh install redirect and admin provider tests

Fresh installs now redirect to /users/register instead of showing the
demo shop. Post-login redirect goes to /admin dashboard (with setup
checklist) instead of /admin/settings. Added 16 provider tests covering
index (list, delete, sync) and form (new, edit, test connection).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
jamey
2026-02-12 14:40:58 +00:00
parent 0dac93ec0b
commit 2cc8c4a9cb
13 changed files with 312 additions and 15 deletions

View File

@@ -2,9 +2,16 @@ defmodule SimpleshopThemeWeb.Shop.CartTest do
use SimpleshopThemeWeb.ConnCase, async: false
import Phoenix.LiveViewTest
import SimpleshopTheme.AccountsFixtures
alias SimpleshopTheme.ProductsFixtures
setup do
user_fixture()
{:ok, _} = SimpleshopTheme.Settings.set_site_live(true)
:ok
end
defp create_cart_with_product(_context) do
product = ProductsFixtures.complete_product_fixture(%{title: "Test Art Print"})
variant = List.first(product.variants)

View File

@@ -2,9 +2,16 @@ defmodule SimpleshopThemeWeb.Shop.CollectionTest do
use SimpleshopThemeWeb.ConnCase, async: false
import Phoenix.LiveViewTest
import SimpleshopTheme.AccountsFixtures
alias SimpleshopTheme.Theme.PreviewData
setup do
user_fixture()
{:ok, _} = SimpleshopTheme.Settings.set_site_live(true)
:ok
end
describe "Collection page" do
test "renders collection page for /collections/all", %{conn: conn} do
{:ok, _view, html} = live(conn, ~p"/collections/all")

View File

@@ -51,11 +51,9 @@ defmodule SimpleshopThemeWeb.Shop.ComingSoonTest do
assert html =~ "Shop the collection"
end
test "allows everyone through on fresh install (no admin)", %{conn: conn} do
# No admin created — fresh install shows the demo shop
{:ok, _view, html} = live(conn, ~p"/")
assert html =~ "Shop the collection"
test "redirects to registration on fresh install (no admin)", %{conn: conn} do
# No admin created — redirect to registration
assert {:error, {:redirect, %{to: "/users/register"}}} = live(conn, ~p"/")
end
test "gates all public shop routes", %{conn: conn} do

View File

@@ -2,6 +2,13 @@ defmodule SimpleshopThemeWeb.Shop.ContentTest do
use SimpleshopThemeWeb.ConnCase, async: false
import Phoenix.LiveViewTest
import SimpleshopTheme.AccountsFixtures
setup do
user_fixture()
{:ok, _} = SimpleshopTheme.Settings.set_site_live(true)
:ok
end
describe "About page" do
test "renders about page", %{conn: conn} do

View File

@@ -2,9 +2,16 @@ defmodule SimpleshopThemeWeb.Shop.HomeTest do
use SimpleshopThemeWeb.ConnCase, async: false
import Phoenix.LiveViewTest
import SimpleshopTheme.AccountsFixtures
alias SimpleshopTheme.Theme.PreviewData
setup do
user_fixture()
{:ok, _} = SimpleshopTheme.Settings.set_site_live(true)
:ok
end
describe "Home page" do
test "renders the home page", %{conn: conn} do
{:ok, _view, html} = live(conn, ~p"/")

View File

@@ -2,9 +2,16 @@ defmodule SimpleshopThemeWeb.Shop.ProductShowTest do
use SimpleshopThemeWeb.ConnCase, async: false
import Phoenix.LiveViewTest
import SimpleshopTheme.AccountsFixtures
alias SimpleshopTheme.Theme.PreviewData
setup do
user_fixture()
{:ok, _} = SimpleshopTheme.Settings.set_site_live(true)
:ok
end
describe "Product detail page" do
test "renders product page with product name", %{conn: conn} do
product = List.first(PreviewData.products())