diff --git a/bevy_asset_loader/tests/can_run_without_next_state.rs b/bevy_asset_loader/tests/can_run_without_next_state.rs
index 9b1e103..bc05568 100644
--- a/bevy_asset_loader/tests/can_run_without_next_state.rs
+++ b/bevy_asset_loader/tests/can_run_without_next_state.rs
@@ -9,13 +9,13 @@ use bevy_asset_loader::prelude::*;
 fn can_run_without_next_state() {
     let mut app = App::new();
 
-    app.init_state::<MyStates>();
     app.add_plugins((
         MinimalPlugins,
         AssetPlugin::default(),
         AudioPlugin::default(),
         StatesPlugin,
     ));
+    app.init_state::<MyStates>();
     #[cfg(feature = "progress_tracking")]
     app.add_plugins(iyes_progress::ProgressPlugin::new(MyStates::Load));
     app.add_loading_state(LoadingState::new(MyStates::Load).load_collection::<MyAssets>())
diff --git a/bevy_asset_loader/tests/continues_to_failure_state.rs b/bevy_asset_loader/tests/continues_to_failure_state.rs
index bb448f8..d5c7ff9 100644
--- a/bevy_asset_loader/tests/continues_to_failure_state.rs
+++ b/bevy_asset_loader/tests/continues_to_failure_state.rs
@@ -7,9 +7,9 @@ use bevy_asset_loader::prelude::*;
 #[test]
 fn continues_to_failure_state() {
     let mut app = App::new();
-    app.init_state::<MyStates>();
 
     app.add_plugins((MinimalPlugins, AssetPlugin::default(), StatesPlugin));
+    app.init_state::<MyStates>();
     #[cfg(feature = "progress_tracking")]
     app.add_plugins(iyes_progress::ProgressPlugin::new(MyStates::Load));
     app.add_loading_state(
diff --git a/bevy_asset_loader/tests/continues_without_collection.rs b/bevy_asset_loader/tests/continues_without_collection.rs
index 0136f1a..68167ea 100644
--- a/bevy_asset_loader/tests/continues_without_collection.rs
+++ b/bevy_asset_loader/tests/continues_without_collection.rs
@@ -7,9 +7,9 @@ use bevy_asset_loader::prelude::*;
 #[test]
 fn continues_without_collection() {
     let mut app = App::new();
-    app.init_state::<MyStates>();
 
     app.add_plugins((MinimalPlugins, AssetPlugin::default(), StatesPlugin));
+    app.init_state::<MyStates>();
     #[cfg(feature = "progress_tracking")]
     app.add_plugins(iyes_progress::ProgressPlugin::new(MyStates::Load));
     app.add_loading_state(LoadingState::new(MyStates::Load).continue_to_state(MyStates::Next))
diff --git a/bevy_asset_loader/tests/init_resource.rs b/bevy_asset_loader/tests/init_resource.rs
index 65e347d..d57f210 100644
--- a/bevy_asset_loader/tests/init_resource.rs
+++ b/bevy_asset_loader/tests/init_resource.rs
@@ -8,7 +8,6 @@ use bevy_asset_loader::prelude::*;
 #[test]
 fn init_resource() {
     let mut app = App::new();
-    app.init_state::<MyStates>();
 
     app.add_plugins((
         MinimalPlugins,
@@ -16,6 +15,7 @@ fn init_resource() {
         AudioPlugin::default(),
         StatesPlugin,
     ));
+    app.init_state::<MyStates>();
     #[cfg(feature = "progress_tracking")]
     app.add_plugins(iyes_progress::ProgressPlugin::new(MyStates::Load));
     app.add_loading_state(
diff --git a/bevy_asset_loader/tests/mapped_path_use_slash.rs b/bevy_asset_loader/tests/mapped_path_use_slash.rs
index 988e780..e268e0a 100644
--- a/bevy_asset_loader/tests/mapped_path_use_slash.rs
+++ b/bevy_asset_loader/tests/mapped_path_use_slash.rs
@@ -9,7 +9,6 @@ use bevy_asset_loader::prelude::*;
 #[test]
 fn mapped_path_use_slash() {
     let mut app = App::new();
-    app.init_state::<MyStates>();
 
     app.add_plugins((
         MinimalPlugins,
@@ -17,6 +16,7 @@ fn mapped_path_use_slash() {
         AudioPlugin::default(),
         StatesPlugin,
     ));
+    app.init_state::<MyStates>();
     #[cfg(feature = "progress_tracking")]
     app.add_plugins(iyes_progress::ProgressPlugin::new(MyStates::Load));
     app.add_loading_state(
diff --git a/bevy_asset_loader/tests/multiple_asset_collections.rs b/bevy_asset_loader/tests/multiple_asset_collections.rs
index 2321ae4..f052a91 100644
--- a/bevy_asset_loader/tests/multiple_asset_collections.rs
+++ b/bevy_asset_loader/tests/multiple_asset_collections.rs
@@ -8,7 +8,6 @@ use bevy_asset_loader::prelude::*;
 #[test]
 fn multiple_asset_collections() {
     let mut app = App::new();
-    app.init_state::<MyStates>();
 
     app.add_plugins((
         MinimalPlugins,
@@ -16,6 +15,7 @@ fn multiple_asset_collections() {
         AudioPlugin::default(),
         StatesPlugin,
     ));
+    app.init_state::<MyStates>();
     #[cfg(feature = "progress_tracking")]
     app.add_plugins(iyes_progress::ProgressPlugin::new(MyStates::Load));
     app.add_loading_state(
diff --git a/bevy_asset_loader/tests/multiple_loading_states.rs b/bevy_asset_loader/tests/multiple_loading_states.rs
index bf38b5a..2b7fba6 100644
--- a/bevy_asset_loader/tests/multiple_loading_states.rs
+++ b/bevy_asset_loader/tests/multiple_loading_states.rs
@@ -7,7 +7,6 @@ use bevy_asset_loader::prelude::*;
 #[test]
 fn multiple_loading_states() {
     let mut app = App::new();
-    app.init_state::<MyStates>();
 
     app.add_plugins((
         MinimalPlugins,
@@ -15,6 +14,7 @@ fn multiple_loading_states() {
         AudioPlugin::default(),
         StatesPlugin,
     ));
+    app.init_state::<MyStates>();
     #[cfg(feature = "progress_tracking")]
     app.add_plugins((
         iyes_progress::ProgressPlugin::new(MyStates::Splash),
diff --git a/bevy_asset_loader/tests/multiple_states.rs b/bevy_asset_loader/tests/multiple_states.rs
index e449b29..14787b9 100644
--- a/bevy_asset_loader/tests/multiple_states.rs
+++ b/bevy_asset_loader/tests/multiple_states.rs
@@ -7,7 +7,6 @@ use bevy_asset_loader::prelude::*;
 #[test]
 fn main() {
     let mut app = App::new();
-    app.init_state::<Prepare>().init_state::<Game>();
 
     app.add_plugins((
         MinimalPlugins,
@@ -15,6 +14,7 @@ fn main() {
         AudioPlugin::default(),
         StatesPlugin,
     ));
+    app.init_state::<Prepare>().init_state::<Game>();
     #[cfg(feature = "progress_tracking")]
     app.add_plugins((
         iyes_progress::ProgressPlugin::new(Game::Booting),
diff --git a/bevy_asset_loader/tests/reload_dynamic_asset_files.rs b/bevy_asset_loader/tests/reload_dynamic_asset_files.rs
index 8e08e67..8cd60b4 100644
--- a/bevy_asset_loader/tests/reload_dynamic_asset_files.rs
+++ b/bevy_asset_loader/tests/reload_dynamic_asset_files.rs
@@ -10,7 +10,6 @@ use bevy_asset_loader::prelude::*;
 #[test]
 fn main() {
     let mut app = App::new();
-    app.init_state::<MyStates>();
 
     app.add_plugins((
         MinimalPlugins,
@@ -18,6 +17,7 @@ fn main() {
         AudioPlugin::default(),
         StatesPlugin,
     ));
+    app.init_state::<MyStates>();
     #[cfg(feature = "progress_tracking")]
     app.add_plugins((
         iyes_progress::ProgressPlugin::new(MyStates::SplashAssetLoading),
diff --git a/bevy_asset_loader/tests/same_collection_multiple_times.rs b/bevy_asset_loader/tests/same_collection_multiple_times.rs
index 1a40556..167fca2 100644
--- a/bevy_asset_loader/tests/same_collection_multiple_times.rs
+++ b/bevy_asset_loader/tests/same_collection_multiple_times.rs
@@ -7,7 +7,6 @@ use bevy_asset_loader::prelude::*;
 #[test]
 fn same_collection_multiple_times() {
     let mut app = App::new();
-    app.init_state::<MyStates>();
 
     app.add_plugins((
         MinimalPlugins,
@@ -15,6 +14,7 @@ fn same_collection_multiple_times() {
         AudioPlugin::default(),
         StatesPlugin,
     ));
+    app.init_state::<MyStates>();
     #[cfg(feature = "progress_tracking")]
     app.add_plugins(iyes_progress::ProgressPlugin::new(MyStates::Load));
     app.add_loading_state(