# frozen_string_literal: true describe "ESMs_util_array_map", :requires_connection, v2: true do include_context "connection" it "returns a new array" do response = execute_sqf!( <<~SQF private _result = [[1,2,3,4], { _this * 2 }] call ESMs_util_array_map; if (isNil "_result") exitWith { nil }; _result SQF ) expect(response).to eq([2, 4, 6, 8]) end context "when 'filter' is used (acts like #filter_map)" do it "returns a new array without `nil` values" do response = execute_sqf!( <<~SQF private _evaluator = { if ((_this % 2) isEqualTo 0) then { _this }; }; private _result = [[1,2,3,4], _evaluator, true] call ESMs_util_array_map; if (isNil "_result") exitWith { nil }; _result SQF ) expect(response).to eq([2, 4]) end end end