@@ -853,6 +853,48 @@ defmodule Mix.ReleaseTest do
853
853
assert release . boot_scripts . start [ :unknown ] == nil
854
854
end )
855
855
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
856
898
end
857
899
858
900
defp write_app! ( path , app ) do
0 commit comments