diff --git a/funkwhale_cli/cli.py b/funkwhale_cli/cli.py
index a3f547b5ff7ffaf95ecd0aca0ac9819eb99b8f6e..2ea751a7f4fc98015003e90078284744a511d91e 100644
--- a/funkwhale_cli/cli.py
+++ b/funkwhale_cli/cli.py
@@ -860,15 +860,15 @@ def favorites(ctx):
 
 @favorites.group("tracks")
 @click.pass_context
-def tracks_favorites(ctx):
+def favorites_tracks(ctx):
     pass
 
 
-@tracks_favorites.command("create")
+@favorites_tracks.command("create")
 @click.argument("id", nargs=-1, required=True)
 @click.pass_context
 @async_command
-async def tracks_favorites_create(ctx, id):
+async def favorites_tracks_create(ctx, id):
     click.echo("Adding {} tracks to favorites…".format(len(id)))
 
     async with ctx.obj["remote"]:
@@ -881,11 +881,11 @@ async def tracks_favorites_create(ctx, id):
                 click.echo("Track {} added to favorites".format(i))
 
 
-@tracks_favorites.command("rm")
+@favorites_tracks.command("rm")
 @click.argument("id", nargs=-1, required=True)
 @click.pass_context
 @async_command
-async def tracks_favorites_rm(ctx, id):
+async def favorites_tracks_rm(ctx, id):
     click.echo("Removing {} tracks to favorites…".format(len(id)))
 
     async with ctx.obj["remote"]:
@@ -899,7 +899,7 @@ async def tracks_favorites_rm(ctx, id):
 
 
 favorites_tracks_ls = get_ls_command(  # noqa
-    tracks_favorites,
+    favorites_tracks,
     "api/v1/favorites/tracks/",
     output_conf={
         "labels": ["Track ID", "Track", "Artist", "Favorite Date"],
diff --git a/tests/test_cli.py b/tests/test_cli.py
index 0ac13857a119c4337aceba920b6d1c0e607637d9..11788af69d7fafd66adb93a746b1bfc1c560fd87 100644
--- a/tests/test_cli.py
+++ b/tests/test_cli.py
@@ -128,3 +128,54 @@ def test_libraries_rm(cli_ctx, session, responses, get_requests):
 
     assert len(get_requests("delete", url + "1/")) == 1
     assert len(get_requests("delete", url + "42/")) == 1
+
+
+def test_favorites_tracks_create(cli_ctx, session, responses, get_requests):
+    command = cli.favorites_tracks_create
+    url = "https://test.funkwhale/api/v1/favorites/tracks/"
+    responses.post(url, repeat=True)
+
+    command.callback(id=[1, 42], _async_reraise=True)
+
+    requests = get_requests("post", url)
+    assert len(requests) == 2
+    assert requests[0].kwargs["data"] == {"track": 1}
+    assert requests[1].kwargs["data"] == {"track": 42}
+
+
+def test_favorites_tracks_ls(cli_ctx, session, responses, get_requests):
+    command = cli.favorites_tracks_ls
+    url = "https://test.funkwhale/api/v1/favorites/tracks/?ordering=-creation_date&page=1&page_size=5&q=hello"
+    responses.get(
+        url, payload={"results": [], "next": None, "previous": None, "count": 0}
+    )
+
+    command.callback(
+        raw=False,
+        page=1,
+        page_size=5,
+        ordering="-creation_date",
+        filter="favorites=true",
+        query=["hello"],
+        column=None,
+        format=None,
+        no_headers=False,
+        ids=False,
+        limit=1,
+    )
+
+    requests = get_requests("get", url)
+    assert len(requests) == 1
+
+
+def test_favorites_tracks_rm(cli_ctx, session, responses, get_requests):
+    command = cli.favorites_tracks_rm
+    url = "https://test.funkwhale/api/v1/favorites/tracks/remove/"
+    responses.delete(url, repeat=True)
+
+    command.callback(id=[1, 42], _async_reraise=True)
+
+    requests = get_requests("delete", url)
+    assert len(requests) == 2
+    assert requests[0].kwargs["data"] == {"track": 1}
+    assert requests[1].kwargs["data"] == {"track": 42}