@@ -853,6 +853,48 @@ defmodule Mix.ReleaseTest do
853853 assert release . boot_scripts . start [ :unknown ] == nil
854854 end )
855855 end
856+
857+ test "are ignored even if mode changes" , context do
858+ in_tmp ( context . test , fn ->
859+ write_app! (
860+ "has_optional/ebin/has_optional.app" ,
861+ { :application , :has_optional ,
862+ applications: [ :kernel , :stdlib , :elixir , :unknown ] ,
863+ optional_applications: [ :unknown ] ,
864+ description: ~c" has_optional" ,
865+ modules: [ ] ,
866+ vsn: ~c" 1.0.0" }
867+ )
868+
869+ write_app! (
870+ "points_as_permanent/ebin/points_as_permanent.app" ,
871+ { :application , :points_as_permanent ,
872+ applications: [ :kernel , :stdlib , :elixir , :has_optional ] ,
873+ optional_applications: [ :unknown ] ,
874+ description: ~c" points_as_permanent" ,
875+ modules: [ ] ,
876+ vsn: ~c" 1.0.0" }
877+ )
878+
879+ write_app! (
880+ "points_as_temporary/ebin/points_as_temporary.app" ,
881+ { :application , :points_as_temporary ,
882+ applications: [ :kernel , :stdlib , :elixir , :has_optional ] ,
883+ optional_applications: [ :unknown ] ,
884+ description: ~c" points_as_temporary" ,
885+ modules: [ ] ,
886+ vsn: ~c" 1.0.0" }
887+ )
888+
889+ release =
890+ release (
891+ applications: [ points_as_permanent: :permanent , points_as_temporary: :temporary ]
892+ )
893+
894+ assert release . boot_scripts . start [ :has_optional ] == :permanent
895+ assert release . boot_scripts . start [ :unknown ] == nil
896+ end )
897+ end
856898 end
857899
858900 defp write_app! ( path , app ) do
0 commit comments