code: def test_fillna_args(dtype, arrow_string_storage):
      # GH 37987
  
      arr = pd.array(["a", pd.NA], dtype=dtype)
  
      res = arr.fillna(value="b")
      expected = pd.array(["a", "b"], dtype=dtype)
      tm.assert_extension_array_equal(res, expected)
  
      res = arr.fillna(value=np.str_("b"))
      expected = pd.array(["a", "b"], dtype=dtype)
      tm.assert_extension_array_equal(res, expected)
  
      if dtype.storage in arrow_string_storage:
          msg = "Invalid value '1' for dtype string"
      else:
          msg = "Cannot set non-string value '1' into a StringArray."
      with pytest.raises(TypeError, match=msg):
          arr.fillna(value=1)
  
imports: import operator
  import numpy
  import pytest
  from pandas.compat.pyarrow import pa_version_under12p0
  from pandas.core.dtypes.common import is_dtype_equal
  import pandas
  import pandas._testing
  from pandas.core.arrays.string_arrow import ArrowStringArray, ArrowStringArrayNumpySemantics
label_desc: Use image node_id 30 for calling a global function with example usage: test_fillna_args(dtype, arrow_string_storage) without return types