       assert {:ok, 1} == set_attr(socket, "a", href: "https://tg.pl/drab")
       {:ok, ret} = query_one(socket, "a", :attributes)
       assert ret["attributes"]["href"] == "https://tg.pl/drab"
+
+      assert {:ok, :broadcasted} == 
+                broadcast_attr(socket, "a", href: "https://tg.pl/drab")
+      {:ok, ret} = query_one(socket, "a", :attributes)
+      assert ret["attributes"]["href"] == "https://tg.pl/drab"
     end
 
     test "set_data" do
       socket = drab_socket()
 
       assert {:ok, 1} == set_data(socket, "button", foo: "bar")
+      {:ok, ret} = query_one(socket, "button", :dataset)
+      assert ret["dataset"]["foo"] == "bar"
+
+      assert {:ok, :broadcasted} == 
+                broadcast_data(socket, "button", foo: "bar")
       {:ok, ret} = query_one(socket, "button", :dataset)
       assert ret["dataset"]["foo"] == "bar"
     end


      {:ok, ret} = query_one(socket, "button", :style)
      assert ret["style"]["cssText"] == "background-color: red; width: 200px;"
    end

    test "set_attr" do

    html = "<p>Hello, World!</p>"
    assert {:ok, 1} == set_html(socket, "#my_element", html)
    assert %{"innerHTML" => html} == query_one!(socket, "#my_element", :innerHTML)

    assert {:ok, :broadcasted} == 
              broadcast_html(socket, "#my_element", html)
    assert %{"innerHTML" => html} == query_one!(socket, "#my_element", :innerHTML)
  end

end
