@@ -89,6 +89,54 @@ class Propshaft::ManifestTest < ActiveSupport::TestCase
89
89
assert_nil manifest [ "nonexistent.js" ]
90
90
end
91
91
92
+ test "delete method removes entry and returns it" do
93
+ manifest = Propshaft ::Manifest . new
94
+ entry = Propshaft ::Manifest ::ManifestEntry . new (
95
+ logical_path : "test.js" ,
96
+ digested_path : "test-abc123.js" ,
97
+ integrity : "sha384-test"
98
+ )
99
+
100
+ manifest . push ( entry )
101
+ assert_equal entry , manifest [ "test.js" ]
102
+
103
+ deleted_entry = manifest . delete ( "test.js" )
104
+ assert_equal entry , deleted_entry
105
+ assert_nil manifest [ "test.js" ]
106
+ end
107
+
108
+ test "delete method returns nil for missing entries" do
109
+ manifest = Propshaft ::Manifest . new
110
+ assert_nil manifest . delete ( "nonexistent.js" )
111
+ end
112
+
113
+ test "delete method with multiple entries" do
114
+ manifest = Propshaft ::Manifest . new
115
+
116
+ entry1 = Propshaft ::Manifest ::ManifestEntry . new (
117
+ logical_path : "app.js" ,
118
+ digested_path : "app-abc123.js" ,
119
+ integrity : "sha384-test1"
120
+ )
121
+
122
+ entry2 = Propshaft ::Manifest ::ManifestEntry . new (
123
+ logical_path : "style.css" ,
124
+ digested_path : "style-def456.css" ,
125
+ integrity : "sha384-test2"
126
+ )
127
+
128
+ manifest . push ( entry1 )
129
+ manifest . push ( entry2 )
130
+
131
+ assert_equal entry1 , manifest [ "app.js" ]
132
+ assert_equal entry2 , manifest [ "style.css" ]
133
+
134
+ deleted_entry = manifest . delete ( "app.js" )
135
+ assert_equal entry1 , deleted_entry
136
+ assert_nil manifest [ "app.js" ]
137
+ assert_equal entry2 , manifest [ "style.css" ]
138
+ end
139
+
92
140
test "push_asset method creates entry from asset" do
93
141
manifest = Propshaft ::Manifest . new ( integrity_hash_algorithm : "sha384" )
94
142
asset = find_asset ( "one.txt" )
0 commit comments