11# credo:disable-for-this-file Credo.Check.Design.AliasUsage
22defmodule Mix.Tasks.AshAuthenticationPhoenix.InstallTest do
3- use ExUnit.Case
3+ use ExUnit.Case , parameterize: [ % { daisy_ui: true } , % { daisy_ui: false } ]
44 @ moduletag :igniter
55
66 import Igniter.Test
77
8- setup do
8+ setup context do
99 igniter =
1010 test_project ( )
11+ |> maybe_add_daisy_ui ( context )
1112 |> Igniter.Project.Deps . add_dep ( { :simple_sat , ">= 0.0.0" } )
1213 |> Igniter.Project.Deps . add_dep ( { :ash_authentication , ">= 0.0.0" } )
1314 |> Igniter.Project.Formatter . add_formatter_plugin ( Spark.Formatter )
@@ -32,7 +33,14 @@ defmodule Mix.Tasks.AshAuthenticationPhoenix.InstallTest do
3233 """ )
3334 |> apply_igniter! ( )
3435
35- [ igniter: igniter ]
36+ base_override =
37+ if context . daisy_ui do
38+ AshAuthentication.Phoenix.Overrides.DaisyUI
39+ else
40+ AshAuthentication.Phoenix.Overrides.Default
41+ end
42+
43+ [ igniter: igniter , base_override: base_override ]
3644 end
3745
3846 test "installation is idempotent" , % { igniter: igniter } do
@@ -196,7 +204,10 @@ defmodule Mix.Tasks.AshAuthenticationPhoenix.InstallTest do
196204 """ )
197205 end
198206
199- test "installation modifies the router" , % { igniter: igniter } do
207+ test "installation modifies the router" , % {
208+ igniter: igniter ,
209+ base_override: base_override
210+ } do
200211 igniter
201212 |> Igniter . compose_task ( "ash_authentication_phoenix.install" )
202213 |> assert_has_patch ( "lib/test_web/router.ex" , """
@@ -241,27 +252,33 @@ defmodule Mix.Tasks.AshAuthenticationPhoenix.InstallTest do
241252 + | reset_path: "/reset",
242253 + | auth_routes_prefix: "/auth",
243254 + | on_mount: [{TestWeb.LiveUserAuth, :live_no_user}],
244- + | overrides: [TestWeb.AuthOverrides, AshAuthentication.Phoenix.Overrides.Default ]
255+ + | overrides: [TestWeb.AuthOverrides, #{ base_override } ]
245256 + | )
246257 + |
247258 + | # Remove this if you do not want to use the reset password feature
248259 + | reset_route(
249260 + | auth_routes_prefix: "/auth",
250- + | overrides: [TestWeb.AuthOverrides, AshAuthentication.Phoenix.Overrides.Default ]
261+ + | overrides: [TestWeb.AuthOverrides, #{ base_override } ]
251262 + | )
252263 + |
253264 + | # Remove this if you do not use the confirmation strategy
254265 + | confirm_route(Test.Accounts.User, :confirm_new_user,
255266 + | auth_routes_prefix: "/auth",
256- + | overrides: [TestWeb.AuthOverrides, AshAuthentication.Phoenix.Overrides.Default ]
267+ + | overrides: [TestWeb.AuthOverrides, #{ base_override } ]
257268 + | )
258269 + |
259270 + | # Remove this if you do not use the magic link strategy.
260271 + | magic_sign_in_route(Test.Accounts.User, :magic_link,
261272 + | auth_routes_prefix: "/auth",
262- + | overrides: [TestWeb.AuthOverrides, AshAuthentication.Phoenix.Overrides.Default ]
273+ + | overrides: [TestWeb.AuthOverrides, #{ base_override } ]
263274 + | )
264275 + | end
265276 """ )
266277 end
278+
279+ defp maybe_add_daisy_ui ( igniter , % { daisy_ui: true } ) do
280+ Igniter . create_new_file ( igniter , "assets/vendor/daisyui.js" , "" )
281+ end
282+
283+ defp maybe_add_daisy_ui ( igniter , _ ) , do: igniter
267284end
0 commit comments