From a5dfd2d4a14ac5a5b87fc6016e57b94d2b964a69 Mon Sep 17 00:00:00 2001
From: Deluan <deluan@navidrome.org>
Date: Sat, 18 Nov 2023 14:42:04 -0500
Subject: [PATCH] Format subsonic response snapshots

---
 ...ses AlbumInfo with data should match .JSON |  16 +-
 ...nses AlbumInfo with data should match .XML |  11 +-
 ... AlbumInfo without data should match .JSON |   9 +-
 ...s AlbumInfo without data should match .XML |   4 +-
 ...ses AlbumList with data should match .JSON |  21 ++-
 ...nses AlbumList with data should match .XML |   6 +-
 ... AlbumList without data should match .JSON |   9 +-
 ...s AlbumList without data should match .XML |   4 +-
 ...es ArtistInfo with data should match .JSON |  30 +++-
 ...ses ArtistInfo with data should match .XML |  14 +-
 ...ArtistInfo without data should match .JSON |   9 +-
 ... ArtistInfo without data should match .XML |   4 +-
 ...ses Bookmarks with data should match .JSON |  28 ++-
 ...nses Bookmarks with data should match .XML |   8 +-
 ... Bookmarks without data should match .JSON |   9 +-
 ...s Bookmarks without data should match .XML |   4 +-
 ...sponses Child with data should match .JSON |  37 +++-
 ...esponses Child with data should match .XML |   6 +-
 ...ses Directory with data should match .JSON |  23 ++-
 ...nses Directory with data should match .XML |   6 +-
 ... Directory without data should match .JSON |  12 +-
 ...s Directory without data should match .XML |   4 +-
 ...Responses EmptyResponse should match .JSON |   8 +-
 ...ponses Genres with data should match .JSON |  27 ++-
 ...sponses Genres with data should match .XML |   8 +-
 ...ses Genres without data should match .JSON |   9 +-
 ...nses Genres without data should match .XML |   4 +-
 ...onses Indexes with data should match .JSON |  27 ++-
 ...ponses Indexes with data should match .XML |   8 +-
 ...es Indexes without data should match .JSON |  12 +-
 ...ses Indexes without data should match .XML |   4 +-
 ...RadioStations with data should match .JSON |  18 +-
 ...tRadioStations with data should match .XML |   6 +-
 ...ioStations without data should match .JSON |   9 +-
 ...dioStations without data should match .XML |   4 +-
 .../Responses License should match .JSON      |  11 +-
 .../Responses License should match .XML       |   4 +-
 ...ponses Lyrics with data should match .JSON |  13 +-
 ...sponses Lyrics with data should match .XML |   4 +-
 ...ses Lyrics without data should match .JSON |  11 +-
 ...nses Lyrics without data should match .XML |   4 +-
 ... MusicFolders with data should match .JSON |  20 ++-
 ...s MusicFolders with data should match .XML |   7 +-
 ...sicFolders without data should match .JSON |   9 +-
 ...usicFolders without data should match .XML |   4 +-
 ...ses PlayQueue with data should match .JSON |  26 ++-
 ...nses PlayQueue with data should match .XML |   6 +-
 ... PlayQueue without data should match .JSON |  12 +-
 ...s PlayQueue without data should match .XML |   4 +-
 ...ses Playlists with data should match .JSON |  33 +++-
 ...nses Playlists with data should match .XML |   7 +-
 ... Playlists without data should match .JSON |   9 +-
 ...s Playlists without data should match .XML |   4 +-
 ...es ScanStatus with data should match .JSON |  14 +-
 ...ses ScanStatus with data should match .XML |   4 +-
 ...ScanStatus without data should match .JSON |  13 +-
 ... ScanStatus without data should match .XML |   4 +-
 ...ponses Shares with data should match .JSON |  48 ++++-
 ...sponses Shares with data should match .XML |   9 +-
 ...ses Shares without data should match .JSON |   9 +-
 ...nses Shares without data should match .XML |   4 +-
 ... SimilarSongs with data should match .JSON |  21 ++-
 ...s SimilarSongs with data should match .XML |   6 +-
 ...milarSongs without data should match .JSON |   9 +-
 ...imilarSongs without data should match .XML |   4 +-
 ...SimilarSongs2 with data should match .JSON |  21 ++-
 ... SimilarSongs2 with data should match .XML |   6 +-
 ...ilarSongs2 without data should match .JSON |   9 +-
 ...milarSongs2 without data should match .XML |   4 +-
 ...nses TopSongs with data should match .JSON |  21 ++-
 ...onses TopSongs with data should match .XML |   6 +-
 ...s TopSongs without data should match .JSON |   9 +-
 ...es TopSongs without data should match .XML |   4 +-
 ...esponses User with data should match .JSON |  28 ++-
 ...Responses User with data should match .XML |   6 +-
 ...onses User without data should match .JSON |  24 ++-
 ...ponses User without data should match .XML |   4 +-
 ...sponses Users with data should match .JSON |  32 +++-
 ...esponses Users with data should match .XML |   8 +-
 ...nses Users without data should match .JSON |  28 ++-
 ...onses Users without data should match .XML |   6 +-
 server/subsonic/responses/responses_test.go   | 164 +++++++++---------
 82 files changed, 968 insertions(+), 163 deletions(-)

diff --git a/server/subsonic/responses/.snapshots/Responses AlbumInfo with data should match .JSON b/server/subsonic/responses/.snapshots/Responses AlbumInfo with data should match .JSON
index bd0907693..329f03ee9 100644
--- a/server/subsonic/responses/.snapshots/Responses AlbumInfo with data should match .JSON	
+++ b/server/subsonic/responses/.snapshots/Responses AlbumInfo with data should match .JSON	
@@ -1 +1,15 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"albumInfo":{"notes":"Believe is the twenty-third studio album by American singer-actress Cher...","musicBrainzId":"03c91c40-49a6-44a7-90e7-a700edf97a62","lastFmUrl":"https://www.last.fm/music/Cher/Believe","smallImageUrl":"https://lastfm.freetls.fastly.net/i/u/34s/3b54885952161aaea4ce2965b2db1638.png","mediumImageUrl":"https://lastfm.freetls.fastly.net/i/u/64s/3b54885952161aaea4ce2965b2db1638.png","largeImageUrl":"https://lastfm.freetls.fastly.net/i/u/174s/3b54885952161aaea4ce2965b2db1638.png"}}
+{
+  "status": "ok",
+  "version": "1.8.0",
+  "type": "navidrome",
+  "serverVersion": "v0.0.0",
+  "openSubsonic": true,
+  "albumInfo": {
+    "notes": "Believe is the twenty-third studio album by American singer-actress Cher...",
+    "musicBrainzId": "03c91c40-49a6-44a7-90e7-a700edf97a62",
+    "lastFmUrl": "https://www.last.fm/music/Cher/Believe",
+    "smallImageUrl": "https://lastfm.freetls.fastly.net/i/u/34s/3b54885952161aaea4ce2965b2db1638.png",
+    "mediumImageUrl": "https://lastfm.freetls.fastly.net/i/u/64s/3b54885952161aaea4ce2965b2db1638.png",
+    "largeImageUrl": "https://lastfm.freetls.fastly.net/i/u/174s/3b54885952161aaea4ce2965b2db1638.png"
+  }
+}
diff --git a/server/subsonic/responses/.snapshots/Responses AlbumInfo with data should match .XML b/server/subsonic/responses/.snapshots/Responses AlbumInfo with data should match .XML
index 4a1015d82..e06da821f 100644
--- a/server/subsonic/responses/.snapshots/Responses AlbumInfo with data should match .XML	
+++ b/server/subsonic/responses/.snapshots/Responses AlbumInfo with data should match .XML	
@@ -1 +1,10 @@
-<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"><albumInfo><notes>Believe is the twenty-third studio album by American singer-actress Cher...</notes><musicBrainzId>03c91c40-49a6-44a7-90e7-a700edf97a62</musicBrainzId><lastFmUrl>https://www.last.fm/music/Cher/Believe</lastFmUrl><smallImageUrl>https://lastfm.freetls.fastly.net/i/u/34s/3b54885952161aaea4ce2965b2db1638.png</smallImageUrl><mediumImageUrl>https://lastfm.freetls.fastly.net/i/u/64s/3b54885952161aaea4ce2965b2db1638.png</mediumImageUrl><largeImageUrl>https://lastfm.freetls.fastly.net/i/u/174s/3b54885952161aaea4ce2965b2db1638.png</largeImageUrl></albumInfo></subsonic-response>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
+  <albumInfo>
+    <notes>Believe is the twenty-third studio album by American singer-actress Cher...</notes>
+    <musicBrainzId>03c91c40-49a6-44a7-90e7-a700edf97a62</musicBrainzId>
+    <lastFmUrl>https://www.last.fm/music/Cher/Believe</lastFmUrl>
+    <smallImageUrl>https://lastfm.freetls.fastly.net/i/u/34s/3b54885952161aaea4ce2965b2db1638.png</smallImageUrl>
+    <mediumImageUrl>https://lastfm.freetls.fastly.net/i/u/64s/3b54885952161aaea4ce2965b2db1638.png</mediumImageUrl>
+    <largeImageUrl>https://lastfm.freetls.fastly.net/i/u/174s/3b54885952161aaea4ce2965b2db1638.png</largeImageUrl>
+  </albumInfo>
+</subsonic-response>
diff --git a/server/subsonic/responses/.snapshots/Responses AlbumInfo without data should match .JSON b/server/subsonic/responses/.snapshots/Responses AlbumInfo without data should match .JSON
index 8322d184b..b67514b7e 100644
--- a/server/subsonic/responses/.snapshots/Responses AlbumInfo without data should match .JSON	
+++ b/server/subsonic/responses/.snapshots/Responses AlbumInfo without data should match .JSON	
@@ -1 +1,8 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"albumInfo":{}}
+{
+  "status": "ok",
+  "version": "1.8.0",
+  "type": "navidrome",
+  "serverVersion": "v0.0.0",
+  "openSubsonic": true,
+  "albumInfo": {}
+}
diff --git a/server/subsonic/responses/.snapshots/Responses AlbumInfo without data should match .XML b/server/subsonic/responses/.snapshots/Responses AlbumInfo without data should match .XML
index 422a75469..fa8d0cedd 100644
--- a/server/subsonic/responses/.snapshots/Responses AlbumInfo without data should match .XML	
+++ b/server/subsonic/responses/.snapshots/Responses AlbumInfo without data should match .XML	
@@ -1 +1,3 @@
-<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"><albumInfo></albumInfo></subsonic-response>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
+  <albumInfo></albumInfo>
+</subsonic-response>
diff --git a/server/subsonic/responses/.snapshots/Responses AlbumList with data should match .JSON b/server/subsonic/responses/.snapshots/Responses AlbumList with data should match .JSON
index e0e812900..dbbf6396f 100644
--- a/server/subsonic/responses/.snapshots/Responses AlbumList with data should match .JSON	
+++ b/server/subsonic/responses/.snapshots/Responses AlbumList with data should match .JSON	
@@ -1 +1,20 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"albumList":{"album":[{"id":"1","isDir":false,"title":"title","genres":[],"isVideo":false,"bpm":0,"comment":""}]}}
+{
+  "status": "ok",
+  "version": "1.8.0",
+  "type": "navidrome",
+  "serverVersion": "v0.0.0",
+  "openSubsonic": true,
+  "albumList": {
+    "album": [
+      {
+        "id": "1",
+        "isDir": false,
+        "title": "title",
+        "genres": [],
+        "isVideo": false,
+        "bpm": 0,
+        "comment": ""
+      }
+    ]
+  }
+}
diff --git a/server/subsonic/responses/.snapshots/Responses AlbumList with data should match .XML b/server/subsonic/responses/.snapshots/Responses AlbumList with data should match .XML
index d6d09ace3..d17a9e812 100644
--- a/server/subsonic/responses/.snapshots/Responses AlbumList with data should match .XML	
+++ b/server/subsonic/responses/.snapshots/Responses AlbumList with data should match .XML	
@@ -1 +1,5 @@
-<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"><albumList><album id="1" isDir="false" title="title" isVideo="false" bpm="0" comment=""></album></albumList></subsonic-response>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
+  <albumList>
+    <album id="1" isDir="false" title="title" isVideo="false" bpm="0" comment=""></album>
+  </albumList>
+</subsonic-response>
diff --git a/server/subsonic/responses/.snapshots/Responses AlbumList without data should match .JSON b/server/subsonic/responses/.snapshots/Responses AlbumList without data should match .JSON
index 441f17c9c..4a668e5a1 100644
--- a/server/subsonic/responses/.snapshots/Responses AlbumList without data should match .JSON	
+++ b/server/subsonic/responses/.snapshots/Responses AlbumList without data should match .JSON	
@@ -1 +1,8 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"albumList":{}}
+{
+  "status": "ok",
+  "version": "1.8.0",
+  "type": "navidrome",
+  "serverVersion": "v0.0.0",
+  "openSubsonic": true,
+  "albumList": {}
+}
diff --git a/server/subsonic/responses/.snapshots/Responses AlbumList without data should match .XML b/server/subsonic/responses/.snapshots/Responses AlbumList without data should match .XML
index 7647de2f9..54a9a774e 100644
--- a/server/subsonic/responses/.snapshots/Responses AlbumList without data should match .XML	
+++ b/server/subsonic/responses/.snapshots/Responses AlbumList without data should match .XML	
@@ -1 +1,3 @@
-<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"><albumList></albumList></subsonic-response>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
+  <albumList></albumList>
+</subsonic-response>
diff --git a/server/subsonic/responses/.snapshots/Responses ArtistInfo with data should match .JSON b/server/subsonic/responses/.snapshots/Responses ArtistInfo with data should match .JSON
index 6190d65e3..2c07f964f 100644
--- a/server/subsonic/responses/.snapshots/Responses ArtistInfo with data should match .JSON	
+++ b/server/subsonic/responses/.snapshots/Responses ArtistInfo with data should match .JSON	
@@ -1 +1,29 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"artistInfo":{"biography":"Black Sabbath is an English \u003ca target='_blank' href=\"http://www.last.fm/tag/heavy%20metal\" class=\"bbcode_tag\" rel=\"tag\"\u003eheavy metal\u003c/a\u003e band","musicBrainzId":"5182c1d9-c7d2-4dad-afa0-ccfeada921a8","lastFmUrl":"https://www.last.fm/music/Black+Sabbath","smallImageUrl":"https://userserve-ak.last.fm/serve/64/27904353.jpg","mediumImageUrl":"https://userserve-ak.last.fm/serve/126/27904353.jpg","largeImageUrl":"https://userserve-ak.last.fm/serve/_/27904353/Black+Sabbath+sabbath+1970.jpg","similarArtist":[{"id":"22","name":"Accept"},{"id":"101","name":"Bruce Dickinson"},{"id":"26","name":"Aerosmith"}]}}
+{
+  "status": "ok",
+  "version": "1.8.0",
+  "type": "navidrome",
+  "serverVersion": "v0.0.0",
+  "openSubsonic": true,
+  "artistInfo": {
+    "biography": "Black Sabbath is an English \u003ca target='_blank' href=\"http://www.last.fm/tag/heavy%20metal\" class=\"bbcode_tag\" rel=\"tag\"\u003eheavy metal\u003c/a\u003e band",
+    "musicBrainzId": "5182c1d9-c7d2-4dad-afa0-ccfeada921a8",
+    "lastFmUrl": "https://www.last.fm/music/Black+Sabbath",
+    "smallImageUrl": "https://userserve-ak.last.fm/serve/64/27904353.jpg",
+    "mediumImageUrl": "https://userserve-ak.last.fm/serve/126/27904353.jpg",
+    "largeImageUrl": "https://userserve-ak.last.fm/serve/_/27904353/Black+Sabbath+sabbath+1970.jpg",
+    "similarArtist": [
+      {
+        "id": "22",
+        "name": "Accept"
+      },
+      {
+        "id": "101",
+        "name": "Bruce Dickinson"
+      },
+      {
+        "id": "26",
+        "name": "Aerosmith"
+      }
+    ]
+  }
+}
diff --git a/server/subsonic/responses/.snapshots/Responses ArtistInfo with data should match .XML b/server/subsonic/responses/.snapshots/Responses ArtistInfo with data should match .XML
index d53a9d2bb..4ed465ec7 100644
--- a/server/subsonic/responses/.snapshots/Responses ArtistInfo with data should match .XML	
+++ b/server/subsonic/responses/.snapshots/Responses ArtistInfo with data should match .XML	
@@ -1 +1,13 @@
-<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"><artistInfo><biography>Black Sabbath is an English &lt;a target=&#39;_blank&#39; href=&#34;http://www.last.fm/tag/heavy%20metal&#34; class=&#34;bbcode_tag&#34; rel=&#34;tag&#34;&gt;heavy metal&lt;/a&gt; band</biography><musicBrainzId>5182c1d9-c7d2-4dad-afa0-ccfeada921a8</musicBrainzId><lastFmUrl>https://www.last.fm/music/Black+Sabbath</lastFmUrl><smallImageUrl>https://userserve-ak.last.fm/serve/64/27904353.jpg</smallImageUrl><mediumImageUrl>https://userserve-ak.last.fm/serve/126/27904353.jpg</mediumImageUrl><largeImageUrl>https://userserve-ak.last.fm/serve/_/27904353/Black+Sabbath+sabbath+1970.jpg</largeImageUrl><similarArtist id="22" name="Accept"></similarArtist><similarArtist id="101" name="Bruce Dickinson"></similarArtist><similarArtist id="26" name="Aerosmith"></similarArtist></artistInfo></subsonic-response>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
+  <artistInfo>
+    <biography>Black Sabbath is an English &lt;a target=&#39;_blank&#39; href=&#34;http://www.last.fm/tag/heavy%20metal&#34; class=&#34;bbcode_tag&#34; rel=&#34;tag&#34;&gt;heavy metal&lt;/a&gt; band</biography>
+    <musicBrainzId>5182c1d9-c7d2-4dad-afa0-ccfeada921a8</musicBrainzId>
+    <lastFmUrl>https://www.last.fm/music/Black+Sabbath</lastFmUrl>
+    <smallImageUrl>https://userserve-ak.last.fm/serve/64/27904353.jpg</smallImageUrl>
+    <mediumImageUrl>https://userserve-ak.last.fm/serve/126/27904353.jpg</mediumImageUrl>
+    <largeImageUrl>https://userserve-ak.last.fm/serve/_/27904353/Black+Sabbath+sabbath+1970.jpg</largeImageUrl>
+    <similarArtist id="22" name="Accept"></similarArtist>
+    <similarArtist id="101" name="Bruce Dickinson"></similarArtist>
+    <similarArtist id="26" name="Aerosmith"></similarArtist>
+  </artistInfo>
+</subsonic-response>
diff --git a/server/subsonic/responses/.snapshots/Responses ArtistInfo without data should match .JSON b/server/subsonic/responses/.snapshots/Responses ArtistInfo without data should match .JSON
index 43d477ab3..215bd61b5 100644
--- a/server/subsonic/responses/.snapshots/Responses ArtistInfo without data should match .JSON	
+++ b/server/subsonic/responses/.snapshots/Responses ArtistInfo without data should match .JSON	
@@ -1 +1,8 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"artistInfo":{}}
+{
+  "status": "ok",
+  "version": "1.8.0",
+  "type": "navidrome",
+  "serverVersion": "v0.0.0",
+  "openSubsonic": true,
+  "artistInfo": {}
+}
diff --git a/server/subsonic/responses/.snapshots/Responses ArtistInfo without data should match .XML b/server/subsonic/responses/.snapshots/Responses ArtistInfo without data should match .XML
index 8e2fa628c..cc4fe25be 100644
--- a/server/subsonic/responses/.snapshots/Responses ArtistInfo without data should match .XML	
+++ b/server/subsonic/responses/.snapshots/Responses ArtistInfo without data should match .XML	
@@ -1 +1,3 @@
-<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"><artistInfo></artistInfo></subsonic-response>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
+  <artistInfo></artistInfo>
+</subsonic-response>
diff --git a/server/subsonic/responses/.snapshots/Responses Bookmarks with data should match .JSON b/server/subsonic/responses/.snapshots/Responses Bookmarks with data should match .JSON
index 8eb6dd66f..9c8600177 100644
--- a/server/subsonic/responses/.snapshots/Responses Bookmarks with data should match .JSON	
+++ b/server/subsonic/responses/.snapshots/Responses Bookmarks with data should match .JSON	
@@ -1 +1,27 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"bookmarks":{"bookmark":[{"entry":{"id":"1","isDir":false,"title":"title","genres":[],"isVideo":false,"bpm":0,"comment":""},"position":123,"username":"user2","comment":"a comment","created":"0001-01-01T00:00:00Z","changed":"0001-01-01T00:00:00Z"}]}}
+{
+  "status": "ok",
+  "version": "1.8.0",
+  "type": "navidrome",
+  "serverVersion": "v0.0.0",
+  "openSubsonic": true,
+  "bookmarks": {
+    "bookmark": [
+      {
+        "entry": {
+          "id": "1",
+          "isDir": false,
+          "title": "title",
+          "genres": [],
+          "isVideo": false,
+          "bpm": 0,
+          "comment": ""
+        },
+        "position": 123,
+        "username": "user2",
+        "comment": "a comment",
+        "created": "0001-01-01T00:00:00Z",
+        "changed": "0001-01-01T00:00:00Z"
+      }
+    ]
+  }
+}
diff --git a/server/subsonic/responses/.snapshots/Responses Bookmarks with data should match .XML b/server/subsonic/responses/.snapshots/Responses Bookmarks with data should match .XML
index ba1c967d1..f753cdc82 100644
--- a/server/subsonic/responses/.snapshots/Responses Bookmarks with data should match .XML	
+++ b/server/subsonic/responses/.snapshots/Responses Bookmarks with data should match .XML	
@@ -1 +1,7 @@
-<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"><bookmarks><bookmark position="123" username="user2" comment="a comment" created="0001-01-01T00:00:00Z" changed="0001-01-01T00:00:00Z"><entry id="1" isDir="false" title="title" isVideo="false" bpm="0" comment=""></entry></bookmark></bookmarks></subsonic-response>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
+  <bookmarks>
+    <bookmark position="123" username="user2" comment="a comment" created="0001-01-01T00:00:00Z" changed="0001-01-01T00:00:00Z">
+      <entry id="1" isDir="false" title="title" isVideo="false" bpm="0" comment=""></entry>
+    </bookmark>
+  </bookmarks>
+</subsonic-response>
diff --git a/server/subsonic/responses/.snapshots/Responses Bookmarks without data should match .JSON b/server/subsonic/responses/.snapshots/Responses Bookmarks without data should match .JSON
index 41dfd3651..693beb1bc 100644
--- a/server/subsonic/responses/.snapshots/Responses Bookmarks without data should match .JSON	
+++ b/server/subsonic/responses/.snapshots/Responses Bookmarks without data should match .JSON	
@@ -1 +1,8 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"bookmarks":{}}
+{
+  "status": "ok",
+  "version": "1.8.0",
+  "type": "navidrome",
+  "serverVersion": "v0.0.0",
+  "openSubsonic": true,
+  "bookmarks": {}
+}
diff --git a/server/subsonic/responses/.snapshots/Responses Bookmarks without data should match .XML b/server/subsonic/responses/.snapshots/Responses Bookmarks without data should match .XML
index 9424d82a2..f1365599c 100644
--- a/server/subsonic/responses/.snapshots/Responses Bookmarks without data should match .XML	
+++ b/server/subsonic/responses/.snapshots/Responses Bookmarks without data should match .XML	
@@ -1 +1,3 @@
-<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"><bookmarks></bookmarks></subsonic-response>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
+  <bookmarks></bookmarks>
+</subsonic-response>
diff --git a/server/subsonic/responses/.snapshots/Responses Child with data should match .JSON b/server/subsonic/responses/.snapshots/Responses Child with data should match .JSON
index 8e1cf0d29..2321f3a0b 100644
--- a/server/subsonic/responses/.snapshots/Responses Child with data should match .JSON	
+++ b/server/subsonic/responses/.snapshots/Responses Child with data should match .JSON	
@@ -1 +1,36 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"directory":{"child":[{"id":"1","isDir":true,"title":"title","album":"album","artist":"artist","track":1,"year":1985,"genre":"Rock","genres":[],"coverArt":"1","size":8421341,"contentType":"audio/flac","suffix":"flac","starred":"2016-03-02T20:30:00Z","transcodedContentType":"audio/mpeg","transcodedSuffix":"mp3","duration":146,"bitRate":320,"isVideo":false,"bpm":0,"comment":""}],"id":"1","name":"N"}}
+{
+  "status": "ok",
+  "version": "1.8.0",
+  "type": "navidrome",
+  "serverVersion": "v0.0.0",
+  "openSubsonic": true,
+  "directory": {
+    "child": [
+      {
+        "id": "1",
+        "isDir": true,
+        "title": "title",
+        "album": "album",
+        "artist": "artist",
+        "track": 1,
+        "year": 1985,
+        "genre": "Rock",
+        "genres": [],
+        "coverArt": "1",
+        "size": 8421341,
+        "contentType": "audio/flac",
+        "suffix": "flac",
+        "starred": "2016-03-02T20:30:00Z",
+        "transcodedContentType": "audio/mpeg",
+        "transcodedSuffix": "mp3",
+        "duration": 146,
+        "bitRate": 320,
+        "isVideo": false,
+        "bpm": 0,
+        "comment": ""
+      }
+    ],
+    "id": "1",
+    "name": "N"
+  }
+}
diff --git a/server/subsonic/responses/.snapshots/Responses Child with data should match .XML b/server/subsonic/responses/.snapshots/Responses Child with data should match .XML
index 07d28bb5e..32d8fdc8a 100644
--- a/server/subsonic/responses/.snapshots/Responses Child with data should match .XML	
+++ b/server/subsonic/responses/.snapshots/Responses Child with data should match .XML	
@@ -1 +1,5 @@
-<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"><directory id="1" name="N"><child id="1" isDir="true" title="title" album="album" artist="artist" track="1" year="1985" genre="Rock" coverArt="1" size="8421341" contentType="audio/flac" suffix="flac" starred="2016-03-02T20:30:00Z" transcodedContentType="audio/mpeg" transcodedSuffix="mp3" duration="146" bitRate="320" isVideo="false" bpm="0" comment=""></child></directory></subsonic-response>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
+  <directory id="1" name="N">
+    <child id="1" isDir="true" title="title" album="album" artist="artist" track="1" year="1985" genre="Rock" coverArt="1" size="8421341" contentType="audio/flac" suffix="flac" starred="2016-03-02T20:30:00Z" transcodedContentType="audio/mpeg" transcodedSuffix="mp3" duration="146" bitRate="320" isVideo="false" bpm="0" comment=""></child>
+  </directory>
+</subsonic-response>
diff --git a/server/subsonic/responses/.snapshots/Responses Directory with data should match .JSON b/server/subsonic/responses/.snapshots/Responses Directory with data should match .JSON
index 7cb1c7403..05c5efc0c 100644
--- a/server/subsonic/responses/.snapshots/Responses Directory with data should match .JSON	
+++ b/server/subsonic/responses/.snapshots/Responses Directory with data should match .JSON	
@@ -1 +1,22 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"directory":{"child":[{"id":"1","isDir":false,"title":"title","genres":[],"isVideo":false,"bpm":0,"comment":""}],"id":"1","name":"N"}}
+{
+  "status": "ok",
+  "version": "1.8.0",
+  "type": "navidrome",
+  "serverVersion": "v0.0.0",
+  "openSubsonic": true,
+  "directory": {
+    "child": [
+      {
+        "id": "1",
+        "isDir": false,
+        "title": "title",
+        "genres": [],
+        "isVideo": false,
+        "bpm": 0,
+        "comment": ""
+      }
+    ],
+    "id": "1",
+    "name": "N"
+  }
+}
diff --git a/server/subsonic/responses/.snapshots/Responses Directory with data should match .XML b/server/subsonic/responses/.snapshots/Responses Directory with data should match .XML
index fb87a2d97..2f1da276b 100644
--- a/server/subsonic/responses/.snapshots/Responses Directory with data should match .XML	
+++ b/server/subsonic/responses/.snapshots/Responses Directory with data should match .XML	
@@ -1 +1,5 @@
-<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"><directory id="1" name="N"><child id="1" isDir="false" title="title" isVideo="false" bpm="0" comment=""></child></directory></subsonic-response>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
+  <directory id="1" name="N">
+    <child id="1" isDir="false" title="title" isVideo="false" bpm="0" comment=""></child>
+  </directory>
+</subsonic-response>
diff --git a/server/subsonic/responses/.snapshots/Responses Directory without data should match .JSON b/server/subsonic/responses/.snapshots/Responses Directory without data should match .JSON
index e66f5ac2f..9636d1b7a 100644
--- a/server/subsonic/responses/.snapshots/Responses Directory without data should match .JSON	
+++ b/server/subsonic/responses/.snapshots/Responses Directory without data should match .JSON	
@@ -1 +1,11 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"directory":{"id":"1","name":"N"}}
+{
+  "status": "ok",
+  "version": "1.8.0",
+  "type": "navidrome",
+  "serverVersion": "v0.0.0",
+  "openSubsonic": true,
+  "directory": {
+    "id": "1",
+    "name": "N"
+  }
+}
diff --git a/server/subsonic/responses/.snapshots/Responses Directory without data should match .XML b/server/subsonic/responses/.snapshots/Responses Directory without data should match .XML
index cf5cea641..44b989908 100644
--- a/server/subsonic/responses/.snapshots/Responses Directory without data should match .XML	
+++ b/server/subsonic/responses/.snapshots/Responses Directory without data should match .XML	
@@ -1 +1,3 @@
-<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"><directory id="1" name="N"></directory></subsonic-response>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
+  <directory id="1" name="N"></directory>
+</subsonic-response>
diff --git a/server/subsonic/responses/.snapshots/Responses EmptyResponse should match .JSON b/server/subsonic/responses/.snapshots/Responses EmptyResponse should match .JSON
index 3150c9a63..0972d329e 100644
--- a/server/subsonic/responses/.snapshots/Responses EmptyResponse should match .JSON	
+++ b/server/subsonic/responses/.snapshots/Responses EmptyResponse should match .JSON	
@@ -1 +1,7 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true}
+{
+  "status": "ok",
+  "version": "1.8.0",
+  "type": "navidrome",
+  "serverVersion": "v0.0.0",
+  "openSubsonic": true
+}
diff --git a/server/subsonic/responses/.snapshots/Responses Genres with data should match .JSON b/server/subsonic/responses/.snapshots/Responses Genres with data should match .JSON
index a81a9666e..b38c97361 100644
--- a/server/subsonic/responses/.snapshots/Responses Genres with data should match .JSON	
+++ b/server/subsonic/responses/.snapshots/Responses Genres with data should match .JSON	
@@ -1 +1,26 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"genres":{"genre":[{"value":"Rock","songCount":1000,"albumCount":100},{"value":"Reggae","songCount":500,"albumCount":50},{"value":"Pop","songCount":0,"albumCount":0}]}}
+{
+  "status": "ok",
+  "version": "1.8.0",
+  "type": "navidrome",
+  "serverVersion": "v0.0.0",
+  "openSubsonic": true,
+  "genres": {
+    "genre": [
+      {
+        "value": "Rock",
+        "songCount": 1000,
+        "albumCount": 100
+      },
+      {
+        "value": "Reggae",
+        "songCount": 500,
+        "albumCount": 50
+      },
+      {
+        "value": "Pop",
+        "songCount": 0,
+        "albumCount": 0
+      }
+    ]
+  }
+}
diff --git a/server/subsonic/responses/.snapshots/Responses Genres with data should match .XML b/server/subsonic/responses/.snapshots/Responses Genres with data should match .XML
index cc69c08ae..02034e7af 100644
--- a/server/subsonic/responses/.snapshots/Responses Genres with data should match .XML	
+++ b/server/subsonic/responses/.snapshots/Responses Genres with data should match .XML	
@@ -1 +1,7 @@
-<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"><genres><genre songCount="1000" albumCount="100">Rock</genre><genre songCount="500" albumCount="50">Reggae</genre><genre songCount="0" albumCount="0">Pop</genre></genres></subsonic-response>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
+  <genres>
+    <genre songCount="1000" albumCount="100">Rock</genre>
+    <genre songCount="500" albumCount="50">Reggae</genre>
+    <genre songCount="0" albumCount="0">Pop</genre>
+  </genres>
+</subsonic-response>
diff --git a/server/subsonic/responses/.snapshots/Responses Genres without data should match .JSON b/server/subsonic/responses/.snapshots/Responses Genres without data should match .JSON
index 80049cd50..45c5a7bca 100644
--- a/server/subsonic/responses/.snapshots/Responses Genres without data should match .JSON	
+++ b/server/subsonic/responses/.snapshots/Responses Genres without data should match .JSON	
@@ -1 +1,8 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"genres":{}}
+{
+  "status": "ok",
+  "version": "1.8.0",
+  "type": "navidrome",
+  "serverVersion": "v0.0.0",
+  "openSubsonic": true,
+  "genres": {}
+}
diff --git a/server/subsonic/responses/.snapshots/Responses Genres without data should match .XML b/server/subsonic/responses/.snapshots/Responses Genres without data should match .XML
index 48a18fa5b..d0a66c3e0 100644
--- a/server/subsonic/responses/.snapshots/Responses Genres without data should match .XML	
+++ b/server/subsonic/responses/.snapshots/Responses Genres without data should match .XML	
@@ -1 +1,3 @@
-<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"><genres></genres></subsonic-response>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
+  <genres></genres>
+</subsonic-response>
diff --git a/server/subsonic/responses/.snapshots/Responses Indexes with data should match .JSON b/server/subsonic/responses/.snapshots/Responses Indexes with data should match .JSON
index 3ae846832..585815fba 100644
--- a/server/subsonic/responses/.snapshots/Responses Indexes with data should match .JSON	
+++ b/server/subsonic/responses/.snapshots/Responses Indexes with data should match .JSON	
@@ -1 +1,26 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"indexes":{"index":[{"name":"A","artist":[{"id":"111","name":"aaa","albumCount":2,"starred":"2016-03-02T20:30:00Z","userRating":3,"artistImageUrl":"https://lastfm.freetls.fastly.net/i/u/300x300/2a96cbd8b46e442fc41c2b86b821562f.png"}]}],"lastModified":1,"ignoredArticles":"A"}}
+{
+  "status": "ok",
+  "version": "1.8.0",
+  "type": "navidrome",
+  "serverVersion": "v0.0.0",
+  "openSubsonic": true,
+  "indexes": {
+    "index": [
+      {
+        "name": "A",
+        "artist": [
+          {
+            "id": "111",
+            "name": "aaa",
+            "albumCount": 2,
+            "starred": "2016-03-02T20:30:00Z",
+            "userRating": 3,
+            "artistImageUrl": "https://lastfm.freetls.fastly.net/i/u/300x300/2a96cbd8b46e442fc41c2b86b821562f.png"
+          }
+        ]
+      }
+    ],
+    "lastModified": 1,
+    "ignoredArticles": "A"
+  }
+}
diff --git a/server/subsonic/responses/.snapshots/Responses Indexes with data should match .XML b/server/subsonic/responses/.snapshots/Responses Indexes with data should match .XML
index 92836929f..86495a75f 100644
--- a/server/subsonic/responses/.snapshots/Responses Indexes with data should match .XML	
+++ b/server/subsonic/responses/.snapshots/Responses Indexes with data should match .XML	
@@ -1 +1,7 @@
-<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"><indexes lastModified="1" ignoredArticles="A"><index name="A"><artist id="111" name="aaa" albumCount="2" starred="2016-03-02T20:30:00Z" userRating="3" artistImageUrl="https://lastfm.freetls.fastly.net/i/u/300x300/2a96cbd8b46e442fc41c2b86b821562f.png"></artist></index></indexes></subsonic-response>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
+  <indexes lastModified="1" ignoredArticles="A">
+    <index name="A">
+      <artist id="111" name="aaa" albumCount="2" starred="2016-03-02T20:30:00Z" userRating="3" artistImageUrl="https://lastfm.freetls.fastly.net/i/u/300x300/2a96cbd8b46e442fc41c2b86b821562f.png"></artist>
+    </index>
+  </indexes>
+</subsonic-response>
diff --git a/server/subsonic/responses/.snapshots/Responses Indexes without data should match .JSON b/server/subsonic/responses/.snapshots/Responses Indexes without data should match .JSON
index c5c0607d8..4dbdc3617 100644
--- a/server/subsonic/responses/.snapshots/Responses Indexes without data should match .JSON	
+++ b/server/subsonic/responses/.snapshots/Responses Indexes without data should match .JSON	
@@ -1 +1,11 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"indexes":{"lastModified":1,"ignoredArticles":"A"}}
+{
+  "status": "ok",
+  "version": "1.8.0",
+  "type": "navidrome",
+  "serverVersion": "v0.0.0",
+  "openSubsonic": true,
+  "indexes": {
+    "lastModified": 1,
+    "ignoredArticles": "A"
+  }
+}
diff --git a/server/subsonic/responses/.snapshots/Responses Indexes without data should match .XML b/server/subsonic/responses/.snapshots/Responses Indexes without data should match .XML
index b4cdef1dd..fad3a53e4 100644
--- a/server/subsonic/responses/.snapshots/Responses Indexes without data should match .XML	
+++ b/server/subsonic/responses/.snapshots/Responses Indexes without data should match .XML	
@@ -1 +1,3 @@
-<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"><indexes lastModified="1" ignoredArticles="A"></indexes></subsonic-response>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
+  <indexes lastModified="1" ignoredArticles="A"></indexes>
+</subsonic-response>
diff --git a/server/subsonic/responses/.snapshots/Responses InternetRadioStations with data should match .JSON b/server/subsonic/responses/.snapshots/Responses InternetRadioStations with data should match .JSON
index eb1a8dc41..355523605 100644
--- a/server/subsonic/responses/.snapshots/Responses InternetRadioStations with data should match .JSON	
+++ b/server/subsonic/responses/.snapshots/Responses InternetRadioStations with data should match .JSON	
@@ -1 +1,17 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"internetRadioStations":{"internetRadioStation":[{"id":"12345678","name":"Example Stream","streamUrl":"https://example.com/stream","homePageUrl":"https://example.com"}]}}
+{
+  "status": "ok",
+  "version": "1.8.0",
+  "type": "navidrome",
+  "serverVersion": "v0.0.0",
+  "openSubsonic": true,
+  "internetRadioStations": {
+    "internetRadioStation": [
+      {
+        "id": "12345678",
+        "name": "Example Stream",
+        "streamUrl": "https://example.com/stream",
+        "homePageUrl": "https://example.com"
+      }
+    ]
+  }
+}
diff --git a/server/subsonic/responses/.snapshots/Responses InternetRadioStations with data should match .XML b/server/subsonic/responses/.snapshots/Responses InternetRadioStations with data should match .XML
index a0794eeb1..bf65d41d2 100644
--- a/server/subsonic/responses/.snapshots/Responses InternetRadioStations with data should match .XML	
+++ b/server/subsonic/responses/.snapshots/Responses InternetRadioStations with data should match .XML	
@@ -1 +1,5 @@
-<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"><internetRadioStations><internetRadioStation id="12345678" name="Example Stream" streamUrl="https://example.com/stream" homePageUrl="https://example.com"></internetRadioStation></internetRadioStations></subsonic-response>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
+  <internetRadioStations>
+    <internetRadioStation id="12345678" name="Example Stream" streamUrl="https://example.com/stream" homePageUrl="https://example.com"></internetRadioStation>
+  </internetRadioStations>
+</subsonic-response>
diff --git a/server/subsonic/responses/.snapshots/Responses InternetRadioStations without data should match .JSON b/server/subsonic/responses/.snapshots/Responses InternetRadioStations without data should match .JSON
index a5dfc5e18..f4cee5c84 100644
--- a/server/subsonic/responses/.snapshots/Responses InternetRadioStations without data should match .JSON	
+++ b/server/subsonic/responses/.snapshots/Responses InternetRadioStations without data should match .JSON	
@@ -1 +1,8 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"internetRadioStations":{}}
+{
+  "status": "ok",
+  "version": "1.8.0",
+  "type": "navidrome",
+  "serverVersion": "v0.0.0",
+  "openSubsonic": true,
+  "internetRadioStations": {}
+}
diff --git a/server/subsonic/responses/.snapshots/Responses InternetRadioStations without data should match .XML b/server/subsonic/responses/.snapshots/Responses InternetRadioStations without data should match .XML
index d670c3170..1c5ae82a9 100644
--- a/server/subsonic/responses/.snapshots/Responses InternetRadioStations without data should match .XML	
+++ b/server/subsonic/responses/.snapshots/Responses InternetRadioStations without data should match .XML	
@@ -1 +1,3 @@
-<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"><internetRadioStations></internetRadioStations></subsonic-response>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
+  <internetRadioStations></internetRadioStations>
+</subsonic-response>
diff --git a/server/subsonic/responses/.snapshots/Responses License should match .JSON b/server/subsonic/responses/.snapshots/Responses License should match .JSON
index f815a2098..4052c5491 100644
--- a/server/subsonic/responses/.snapshots/Responses License should match .JSON	
+++ b/server/subsonic/responses/.snapshots/Responses License should match .JSON	
@@ -1 +1,10 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"license":{"valid":true}}
+{
+  "status": "ok",
+  "version": "1.8.0",
+  "type": "navidrome",
+  "serverVersion": "v0.0.0",
+  "openSubsonic": true,
+  "license": {
+    "valid": true
+  }
+}
diff --git a/server/subsonic/responses/.snapshots/Responses License should match .XML b/server/subsonic/responses/.snapshots/Responses License should match .XML
index e5a90c467..dc56efabc 100644
--- a/server/subsonic/responses/.snapshots/Responses License should match .XML	
+++ b/server/subsonic/responses/.snapshots/Responses License should match .XML	
@@ -1 +1,3 @@
-<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"><license valid="true"></license></subsonic-response>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
+  <license valid="true"></license>
+</subsonic-response>
diff --git a/server/subsonic/responses/.snapshots/Responses Lyrics with data should match .JSON b/server/subsonic/responses/.snapshots/Responses Lyrics with data should match .JSON
index 204a358ff..35833e00a 100644
--- a/server/subsonic/responses/.snapshots/Responses Lyrics with data should match .JSON	
+++ b/server/subsonic/responses/.snapshots/Responses Lyrics with data should match .JSON	
@@ -1 +1,12 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"lyrics":{"artist":"Rick Astley","title":"Never Gonna Give You Up","value":"Never gonna give you up\n\t\t\t\tNever gonna let you down\n\t\t\t\tNever gonna run around and desert you\n\t\t\t\tNever gonna say goodbye"}}
+{
+  "status": "ok",
+  "version": "1.8.0",
+  "type": "navidrome",
+  "serverVersion": "v0.0.0",
+  "openSubsonic": true,
+  "lyrics": {
+    "artist": "Rick Astley",
+    "title": "Never Gonna Give You Up",
+    "value": "Never gonna give you up\n\t\t\t\tNever gonna let you down\n\t\t\t\tNever gonna run around and desert you\n\t\t\t\tNever gonna say goodbye"
+  }
+}
diff --git a/server/subsonic/responses/.snapshots/Responses Lyrics with data should match .XML b/server/subsonic/responses/.snapshots/Responses Lyrics with data should match .XML
index c7e6f82d7..51f0032d4 100644
--- a/server/subsonic/responses/.snapshots/Responses Lyrics with data should match .XML	
+++ b/server/subsonic/responses/.snapshots/Responses Lyrics with data should match .XML	
@@ -1 +1,3 @@
-<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"><lyrics artist="Rick Astley" title="Never Gonna Give You Up">Never gonna give you up&#xA;&#x9;&#x9;&#x9;&#x9;Never gonna let you down&#xA;&#x9;&#x9;&#x9;&#x9;Never gonna run around and desert you&#xA;&#x9;&#x9;&#x9;&#x9;Never gonna say goodbye</lyrics></subsonic-response>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
+  <lyrics artist="Rick Astley" title="Never Gonna Give You Up">Never gonna give you up&#xA;&#x9;&#x9;&#x9;&#x9;Never gonna let you down&#xA;&#x9;&#x9;&#x9;&#x9;Never gonna run around and desert you&#xA;&#x9;&#x9;&#x9;&#x9;Never gonna say goodbye</lyrics>
+</subsonic-response>
diff --git a/server/subsonic/responses/.snapshots/Responses Lyrics without data should match .JSON b/server/subsonic/responses/.snapshots/Responses Lyrics without data should match .JSON
index 10f5c211d..1094e9e1f 100644
--- a/server/subsonic/responses/.snapshots/Responses Lyrics without data should match .JSON	
+++ b/server/subsonic/responses/.snapshots/Responses Lyrics without data should match .JSON	
@@ -1 +1,10 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"lyrics":{"value":""}}
+{
+  "status": "ok",
+  "version": "1.8.0",
+  "type": "navidrome",
+  "serverVersion": "v0.0.0",
+  "openSubsonic": true,
+  "lyrics": {
+    "value": ""
+  }
+}
diff --git a/server/subsonic/responses/.snapshots/Responses Lyrics without data should match .XML b/server/subsonic/responses/.snapshots/Responses Lyrics without data should match .XML
index 9abc77e1f..cc1821d78 100644
--- a/server/subsonic/responses/.snapshots/Responses Lyrics without data should match .XML	
+++ b/server/subsonic/responses/.snapshots/Responses Lyrics without data should match .XML	
@@ -1 +1,3 @@
-<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"><lyrics></lyrics></subsonic-response>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
+  <lyrics></lyrics>
+</subsonic-response>
diff --git a/server/subsonic/responses/.snapshots/Responses MusicFolders with data should match .JSON b/server/subsonic/responses/.snapshots/Responses MusicFolders with data should match .JSON
index fb79b75c1..016310833 100644
--- a/server/subsonic/responses/.snapshots/Responses MusicFolders with data should match .JSON	
+++ b/server/subsonic/responses/.snapshots/Responses MusicFolders with data should match .JSON	
@@ -1 +1,19 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"musicFolders":{"musicFolder":[{"id":111,"name":"aaa"},{"id":222,"name":"bbb"}]}}
+{
+  "status": "ok",
+  "version": "1.8.0",
+  "type": "navidrome",
+  "serverVersion": "v0.0.0",
+  "openSubsonic": true,
+  "musicFolders": {
+    "musicFolder": [
+      {
+        "id": 111,
+        "name": "aaa"
+      },
+      {
+        "id": 222,
+        "name": "bbb"
+      }
+    ]
+  }
+}
diff --git a/server/subsonic/responses/.snapshots/Responses MusicFolders with data should match .XML b/server/subsonic/responses/.snapshots/Responses MusicFolders with data should match .XML
index da940c3ff..3171c6f23 100644
--- a/server/subsonic/responses/.snapshots/Responses MusicFolders with data should match .XML	
+++ b/server/subsonic/responses/.snapshots/Responses MusicFolders with data should match .XML	
@@ -1 +1,6 @@
-<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"><musicFolders><musicFolder id="111" name="aaa"></musicFolder><musicFolder id="222" name="bbb"></musicFolder></musicFolders></subsonic-response>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
+  <musicFolders>
+    <musicFolder id="111" name="aaa"></musicFolder>
+    <musicFolder id="222" name="bbb"></musicFolder>
+  </musicFolders>
+</subsonic-response>
diff --git a/server/subsonic/responses/.snapshots/Responses MusicFolders without data should match .JSON b/server/subsonic/responses/.snapshots/Responses MusicFolders without data should match .JSON
index ee512ae47..b2fdd22a1 100644
--- a/server/subsonic/responses/.snapshots/Responses MusicFolders without data should match .JSON	
+++ b/server/subsonic/responses/.snapshots/Responses MusicFolders without data should match .JSON	
@@ -1 +1,8 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"musicFolders":{}}
+{
+  "status": "ok",
+  "version": "1.8.0",
+  "type": "navidrome",
+  "serverVersion": "v0.0.0",
+  "openSubsonic": true,
+  "musicFolders": {}
+}
diff --git a/server/subsonic/responses/.snapshots/Responses MusicFolders without data should match .XML b/server/subsonic/responses/.snapshots/Responses MusicFolders without data should match .XML
index 63848d75d..12b4ff9ce 100644
--- a/server/subsonic/responses/.snapshots/Responses MusicFolders without data should match .XML	
+++ b/server/subsonic/responses/.snapshots/Responses MusicFolders without data should match .XML	
@@ -1 +1,3 @@
-<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"><musicFolders></musicFolders></subsonic-response>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
+  <musicFolders></musicFolders>
+</subsonic-response>
diff --git a/server/subsonic/responses/.snapshots/Responses PlayQueue with data should match .JSON b/server/subsonic/responses/.snapshots/Responses PlayQueue with data should match .JSON
index b9dba55c9..bbc33ddb0 100644
--- a/server/subsonic/responses/.snapshots/Responses PlayQueue with data should match .JSON	
+++ b/server/subsonic/responses/.snapshots/Responses PlayQueue with data should match .JSON	
@@ -1 +1,25 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"playQueue":{"entry":[{"id":"1","isDir":false,"title":"title","genres":[],"isVideo":false,"bpm":0,"comment":""}],"current":"111","position":243,"username":"user1","changed":"0001-01-01T00:00:00Z","changedBy":"a_client"}}
+{
+  "status": "ok",
+  "version": "1.8.0",
+  "type": "navidrome",
+  "serverVersion": "v0.0.0",
+  "openSubsonic": true,
+  "playQueue": {
+    "entry": [
+      {
+        "id": "1",
+        "isDir": false,
+        "title": "title",
+        "genres": [],
+        "isVideo": false,
+        "bpm": 0,
+        "comment": ""
+      }
+    ],
+    "current": "111",
+    "position": 243,
+    "username": "user1",
+    "changed": "0001-01-01T00:00:00Z",
+    "changedBy": "a_client"
+  }
+}
diff --git a/server/subsonic/responses/.snapshots/Responses PlayQueue with data should match .XML b/server/subsonic/responses/.snapshots/Responses PlayQueue with data should match .XML
index defcd4f58..5d7155d44 100644
--- a/server/subsonic/responses/.snapshots/Responses PlayQueue with data should match .XML	
+++ b/server/subsonic/responses/.snapshots/Responses PlayQueue with data should match .XML	
@@ -1 +1,5 @@
-<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"><playQueue current="111" position="243" username="user1" changed="0001-01-01T00:00:00Z" changedBy="a_client"><entry id="1" isDir="false" title="title" isVideo="false" bpm="0" comment=""></entry></playQueue></subsonic-response>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
+  <playQueue current="111" position="243" username="user1" changed="0001-01-01T00:00:00Z" changedBy="a_client">
+    <entry id="1" isDir="false" title="title" isVideo="false" bpm="0" comment=""></entry>
+  </playQueue>
+</subsonic-response>
diff --git a/server/subsonic/responses/.snapshots/Responses PlayQueue without data should match .JSON b/server/subsonic/responses/.snapshots/Responses PlayQueue without data should match .JSON
index d13e3ae8c..7af12aeed 100644
--- a/server/subsonic/responses/.snapshots/Responses PlayQueue without data should match .JSON	
+++ b/server/subsonic/responses/.snapshots/Responses PlayQueue without data should match .JSON	
@@ -1 +1,11 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"playQueue":{"username":"","changedBy":""}}
+{
+  "status": "ok",
+  "version": "1.8.0",
+  "type": "navidrome",
+  "serverVersion": "v0.0.0",
+  "openSubsonic": true,
+  "playQueue": {
+    "username": "",
+    "changedBy": ""
+  }
+}
diff --git a/server/subsonic/responses/.snapshots/Responses PlayQueue without data should match .XML b/server/subsonic/responses/.snapshots/Responses PlayQueue without data should match .XML
index b2a09b360..1a3e0b527 100644
--- a/server/subsonic/responses/.snapshots/Responses PlayQueue without data should match .XML	
+++ b/server/subsonic/responses/.snapshots/Responses PlayQueue without data should match .XML	
@@ -1 +1,3 @@
-<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"><playQueue username="" changedBy=""></playQueue></subsonic-response>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
+  <playQueue username="" changedBy=""></playQueue>
+</subsonic-response>
diff --git a/server/subsonic/responses/.snapshots/Responses Playlists with data should match .JSON b/server/subsonic/responses/.snapshots/Responses Playlists with data should match .JSON
index 9f1f57e01..3c87c80bf 100644
--- a/server/subsonic/responses/.snapshots/Responses Playlists with data should match .JSON	
+++ b/server/subsonic/responses/.snapshots/Responses Playlists with data should match .JSON	
@@ -1 +1,32 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"playlists":{"playlist":[{"id":"111","name":"aaa","comment":"comment","songCount":2,"duration":120,"public":true,"owner":"admin","created":"0001-01-01T00:00:00Z","changed":"0001-01-01T00:00:00Z","coverArt":"pl-123123123123"},{"id":"222","name":"bbb","songCount":0,"duration":0,"public":false,"created":"0001-01-01T00:00:00Z","changed":"0001-01-01T00:00:00Z"}]}}
+{
+  "status": "ok",
+  "version": "1.8.0",
+  "type": "navidrome",
+  "serverVersion": "v0.0.0",
+  "openSubsonic": true,
+  "playlists": {
+    "playlist": [
+      {
+        "id": "111",
+        "name": "aaa",
+        "comment": "comment",
+        "songCount": 2,
+        "duration": 120,
+        "public": true,
+        "owner": "admin",
+        "created": "0001-01-01T00:00:00Z",
+        "changed": "0001-01-01T00:00:00Z",
+        "coverArt": "pl-123123123123"
+      },
+      {
+        "id": "222",
+        "name": "bbb",
+        "songCount": 0,
+        "duration": 0,
+        "public": false,
+        "created": "0001-01-01T00:00:00Z",
+        "changed": "0001-01-01T00:00:00Z"
+      }
+    ]
+  }
+}
diff --git a/server/subsonic/responses/.snapshots/Responses Playlists with data should match .XML b/server/subsonic/responses/.snapshots/Responses Playlists with data should match .XML
index cd6d1ccac..91a71d281 100644
--- a/server/subsonic/responses/.snapshots/Responses Playlists with data should match .XML	
+++ b/server/subsonic/responses/.snapshots/Responses Playlists with data should match .XML	
@@ -1 +1,6 @@
-<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"><playlists><playlist id="111" name="aaa" comment="comment" songCount="2" duration="120" public="true" owner="admin" created="0001-01-01T00:00:00Z" changed="0001-01-01T00:00:00Z" coverArt="pl-123123123123"></playlist><playlist id="222" name="bbb" songCount="0" duration="0" public="false" created="0001-01-01T00:00:00Z" changed="0001-01-01T00:00:00Z"></playlist></playlists></subsonic-response>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
+  <playlists>
+    <playlist id="111" name="aaa" comment="comment" songCount="2" duration="120" public="true" owner="admin" created="0001-01-01T00:00:00Z" changed="0001-01-01T00:00:00Z" coverArt="pl-123123123123"></playlist>
+    <playlist id="222" name="bbb" songCount="0" duration="0" public="false" created="0001-01-01T00:00:00Z" changed="0001-01-01T00:00:00Z"></playlist>
+  </playlists>
+</subsonic-response>
diff --git a/server/subsonic/responses/.snapshots/Responses Playlists without data should match .JSON b/server/subsonic/responses/.snapshots/Responses Playlists without data should match .JSON
index cd9ece060..4a55658d8 100644
--- a/server/subsonic/responses/.snapshots/Responses Playlists without data should match .JSON	
+++ b/server/subsonic/responses/.snapshots/Responses Playlists without data should match .JSON	
@@ -1 +1,8 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"playlists":{}}
+{
+  "status": "ok",
+  "version": "1.8.0",
+  "type": "navidrome",
+  "serverVersion": "v0.0.0",
+  "openSubsonic": true,
+  "playlists": {}
+}
diff --git a/server/subsonic/responses/.snapshots/Responses Playlists without data should match .XML b/server/subsonic/responses/.snapshots/Responses Playlists without data should match .XML
index 90bf400ed..0c091fe9f 100644
--- a/server/subsonic/responses/.snapshots/Responses Playlists without data should match .XML	
+++ b/server/subsonic/responses/.snapshots/Responses Playlists without data should match .XML	
@@ -1 +1,3 @@
-<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"><playlists></playlists></subsonic-response>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
+  <playlists></playlists>
+</subsonic-response>
diff --git a/server/subsonic/responses/.snapshots/Responses ScanStatus with data should match .JSON b/server/subsonic/responses/.snapshots/Responses ScanStatus with data should match .JSON
index 8e8b0e1bf..576c59051 100644
--- a/server/subsonic/responses/.snapshots/Responses ScanStatus with data should match .JSON	
+++ b/server/subsonic/responses/.snapshots/Responses ScanStatus with data should match .JSON	
@@ -1 +1,13 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"scanStatus":{"scanning":true,"count":456,"folderCount":123,"lastScan":"2006-01-02T15:04:00Z"}}
+{
+  "status": "ok",
+  "version": "1.8.0",
+  "type": "navidrome",
+  "serverVersion": "v0.0.0",
+  "openSubsonic": true,
+  "scanStatus": {
+    "scanning": true,
+    "count": 456,
+    "folderCount": 123,
+    "lastScan": "2006-01-02T15:04:00Z"
+  }
+}
diff --git a/server/subsonic/responses/.snapshots/Responses ScanStatus with data should match .XML b/server/subsonic/responses/.snapshots/Responses ScanStatus with data should match .XML
index 69c2e9c05..fb6432bb8 100644
--- a/server/subsonic/responses/.snapshots/Responses ScanStatus with data should match .XML	
+++ b/server/subsonic/responses/.snapshots/Responses ScanStatus with data should match .XML	
@@ -1 +1,3 @@
-<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"><scanStatus scanning="true" count="456" folderCount="123" lastScan="2006-01-02T15:04:00Z"></scanStatus></subsonic-response>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
+  <scanStatus scanning="true" count="456" folderCount="123" lastScan="2006-01-02T15:04:00Z"></scanStatus>
+</subsonic-response>
diff --git a/server/subsonic/responses/.snapshots/Responses ScanStatus without data should match .JSON b/server/subsonic/responses/.snapshots/Responses ScanStatus without data should match .JSON
index 4b65e3fee..d880a2dea 100644
--- a/server/subsonic/responses/.snapshots/Responses ScanStatus without data should match .JSON	
+++ b/server/subsonic/responses/.snapshots/Responses ScanStatus without data should match .JSON	
@@ -1 +1,12 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"scanStatus":{"scanning":false,"count":0,"folderCount":0}}
+{
+  "status": "ok",
+  "version": "1.8.0",
+  "type": "navidrome",
+  "serverVersion": "v0.0.0",
+  "openSubsonic": true,
+  "scanStatus": {
+    "scanning": false,
+    "count": 0,
+    "folderCount": 0
+  }
+}
diff --git a/server/subsonic/responses/.snapshots/Responses ScanStatus without data should match .XML b/server/subsonic/responses/.snapshots/Responses ScanStatus without data should match .XML
index 9d3b38d19..6e9156eab 100644
--- a/server/subsonic/responses/.snapshots/Responses ScanStatus without data should match .XML	
+++ b/server/subsonic/responses/.snapshots/Responses ScanStatus without data should match .XML	
@@ -1 +1,3 @@
-<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"><scanStatus scanning="false" count="0" folderCount="0"></scanStatus></subsonic-response>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
+  <scanStatus scanning="false" count="0" folderCount="0"></scanStatus>
+</subsonic-response>
diff --git a/server/subsonic/responses/.snapshots/Responses Shares with data should match .JSON b/server/subsonic/responses/.snapshots/Responses Shares with data should match .JSON
index 0eac71e08..1547d7458 100644
--- a/server/subsonic/responses/.snapshots/Responses Shares with data should match .JSON	
+++ b/server/subsonic/responses/.snapshots/Responses Shares with data should match .JSON	
@@ -1 +1,47 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"shares":{"share":[{"entry":[{"id":"1","isDir":false,"title":"title","album":"album","artist":"artist","genres":[],"duration":120,"isVideo":false,"bpm":0,"comment":""},{"id":"2","isDir":false,"title":"title 2","album":"album","artist":"artist","genres":[],"duration":300,"isVideo":false,"bpm":0,"comment":""}],"id":"ABC123","url":"http://localhost/p/ABC123","description":"Check it out!","username":"deluan","created":"0001-01-01T00:00:00Z","expires":"0001-01-01T00:00:00Z","lastVisited":"0001-01-01T00:00:00Z","visitCount":2}]}}
+{
+  "status": "ok",
+  "version": "1.8.0",
+  "type": "navidrome",
+  "serverVersion": "v0.0.0",
+  "openSubsonic": true,
+  "shares": {
+    "share": [
+      {
+        "entry": [
+          {
+            "id": "1",
+            "isDir": false,
+            "title": "title",
+            "album": "album",
+            "artist": "artist",
+            "genres": [],
+            "duration": 120,
+            "isVideo": false,
+            "bpm": 0,
+            "comment": ""
+          },
+          {
+            "id": "2",
+            "isDir": false,
+            "title": "title 2",
+            "album": "album",
+            "artist": "artist",
+            "genres": [],
+            "duration": 300,
+            "isVideo": false,
+            "bpm": 0,
+            "comment": ""
+          }
+        ],
+        "id": "ABC123",
+        "url": "http://localhost/p/ABC123",
+        "description": "Check it out!",
+        "username": "deluan",
+        "created": "0001-01-01T00:00:00Z",
+        "expires": "0001-01-01T00:00:00Z",
+        "lastVisited": "0001-01-01T00:00:00Z",
+        "visitCount": 2
+      }
+    ]
+  }
+}
diff --git a/server/subsonic/responses/.snapshots/Responses Shares with data should match .XML b/server/subsonic/responses/.snapshots/Responses Shares with data should match .XML
index 9a628c66b..de0ba71da 100644
--- a/server/subsonic/responses/.snapshots/Responses Shares with data should match .XML	
+++ b/server/subsonic/responses/.snapshots/Responses Shares with data should match .XML	
@@ -1 +1,8 @@
-<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"><shares><share id="ABC123" url="http://localhost/p/ABC123" description="Check it out!" username="deluan" created="0001-01-01T00:00:00Z" expires="0001-01-01T00:00:00Z" lastVisited="0001-01-01T00:00:00Z" visitCount="2"><entry id="1" isDir="false" title="title" album="album" artist="artist" duration="120" isVideo="false" bpm="0" comment=""></entry><entry id="2" isDir="false" title="title 2" album="album" artist="artist" duration="300" isVideo="false" bpm="0" comment=""></entry></share></shares></subsonic-response>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
+  <shares>
+    <share id="ABC123" url="http://localhost/p/ABC123" description="Check it out!" username="deluan" created="0001-01-01T00:00:00Z" expires="0001-01-01T00:00:00Z" lastVisited="0001-01-01T00:00:00Z" visitCount="2">
+      <entry id="1" isDir="false" title="title" album="album" artist="artist" duration="120" isVideo="false" bpm="0" comment=""></entry>
+      <entry id="2" isDir="false" title="title 2" album="album" artist="artist" duration="300" isVideo="false" bpm="0" comment=""></entry>
+    </share>
+  </shares>
+</subsonic-response>
diff --git a/server/subsonic/responses/.snapshots/Responses Shares without data should match .JSON b/server/subsonic/responses/.snapshots/Responses Shares without data should match .JSON
index bf12c71ed..393e1ab32 100644
--- a/server/subsonic/responses/.snapshots/Responses Shares without data should match .JSON	
+++ b/server/subsonic/responses/.snapshots/Responses Shares without data should match .JSON	
@@ -1 +1,8 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"shares":{}}
+{
+  "status": "ok",
+  "version": "1.8.0",
+  "type": "navidrome",
+  "serverVersion": "v0.0.0",
+  "openSubsonic": true,
+  "shares": {}
+}
diff --git a/server/subsonic/responses/.snapshots/Responses Shares without data should match .XML b/server/subsonic/responses/.snapshots/Responses Shares without data should match .XML
index 6b8aec3fd..4b9dde4e6 100644
--- a/server/subsonic/responses/.snapshots/Responses Shares without data should match .XML	
+++ b/server/subsonic/responses/.snapshots/Responses Shares without data should match .XML	
@@ -1 +1,3 @@
-<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"><shares></shares></subsonic-response>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
+  <shares></shares>
+</subsonic-response>
diff --git a/server/subsonic/responses/.snapshots/Responses SimilarSongs with data should match .JSON b/server/subsonic/responses/.snapshots/Responses SimilarSongs with data should match .JSON
index a67febe7f..96c42074a 100644
--- a/server/subsonic/responses/.snapshots/Responses SimilarSongs with data should match .JSON	
+++ b/server/subsonic/responses/.snapshots/Responses SimilarSongs with data should match .JSON	
@@ -1 +1,20 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"similarSongs":{"song":[{"id":"1","isDir":false,"title":"title","genres":[],"isVideo":false,"bpm":0,"comment":""}]}}
+{
+  "status": "ok",
+  "version": "1.8.0",
+  "type": "navidrome",
+  "serverVersion": "v0.0.0",
+  "openSubsonic": true,
+  "similarSongs": {
+    "song": [
+      {
+        "id": "1",
+        "isDir": false,
+        "title": "title",
+        "genres": [],
+        "isVideo": false,
+        "bpm": 0,
+        "comment": ""
+      }
+    ]
+  }
+}
diff --git a/server/subsonic/responses/.snapshots/Responses SimilarSongs with data should match .XML b/server/subsonic/responses/.snapshots/Responses SimilarSongs with data should match .XML
index 39429cbea..bfd6c31e0 100644
--- a/server/subsonic/responses/.snapshots/Responses SimilarSongs with data should match .XML	
+++ b/server/subsonic/responses/.snapshots/Responses SimilarSongs with data should match .XML	
@@ -1 +1,5 @@
-<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"><similarSongs><song id="1" isDir="false" title="title" isVideo="false" bpm="0" comment=""></song></similarSongs></subsonic-response>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
+  <similarSongs>
+    <song id="1" isDir="false" title="title" isVideo="false" bpm="0" comment=""></song>
+  </similarSongs>
+</subsonic-response>
diff --git a/server/subsonic/responses/.snapshots/Responses SimilarSongs without data should match .JSON b/server/subsonic/responses/.snapshots/Responses SimilarSongs without data should match .JSON
index 642ee62b5..37092e67b 100644
--- a/server/subsonic/responses/.snapshots/Responses SimilarSongs without data should match .JSON	
+++ b/server/subsonic/responses/.snapshots/Responses SimilarSongs without data should match .JSON	
@@ -1 +1,8 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"similarSongs":{}}
+{
+  "status": "ok",
+  "version": "1.8.0",
+  "type": "navidrome",
+  "serverVersion": "v0.0.0",
+  "openSubsonic": true,
+  "similarSongs": {}
+}
diff --git a/server/subsonic/responses/.snapshots/Responses SimilarSongs without data should match .XML b/server/subsonic/responses/.snapshots/Responses SimilarSongs without data should match .XML
index ff1ad253d..49ffa3ebd 100644
--- a/server/subsonic/responses/.snapshots/Responses SimilarSongs without data should match .XML	
+++ b/server/subsonic/responses/.snapshots/Responses SimilarSongs without data should match .XML	
@@ -1 +1,3 @@
-<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"><similarSongs></similarSongs></subsonic-response>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
+  <similarSongs></similarSongs>
+</subsonic-response>
diff --git a/server/subsonic/responses/.snapshots/Responses SimilarSongs2 with data should match .JSON b/server/subsonic/responses/.snapshots/Responses SimilarSongs2 with data should match .JSON
index 7887668a2..45aaf997e 100644
--- a/server/subsonic/responses/.snapshots/Responses SimilarSongs2 with data should match .JSON	
+++ b/server/subsonic/responses/.snapshots/Responses SimilarSongs2 with data should match .JSON	
@@ -1 +1,20 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"similarSongs2":{"song":[{"id":"1","isDir":false,"title":"title","genres":[],"isVideo":false,"bpm":0,"comment":""}]}}
+{
+  "status": "ok",
+  "version": "1.8.0",
+  "type": "navidrome",
+  "serverVersion": "v0.0.0",
+  "openSubsonic": true,
+  "similarSongs2": {
+    "song": [
+      {
+        "id": "1",
+        "isDir": false,
+        "title": "title",
+        "genres": [],
+        "isVideo": false,
+        "bpm": 0,
+        "comment": ""
+      }
+    ]
+  }
+}
diff --git a/server/subsonic/responses/.snapshots/Responses SimilarSongs2 with data should match .XML b/server/subsonic/responses/.snapshots/Responses SimilarSongs2 with data should match .XML
index 1140d0985..00da80758 100644
--- a/server/subsonic/responses/.snapshots/Responses SimilarSongs2 with data should match .XML	
+++ b/server/subsonic/responses/.snapshots/Responses SimilarSongs2 with data should match .XML	
@@ -1 +1,5 @@
-<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"><similarSongs2><song id="1" isDir="false" title="title" isVideo="false" bpm="0" comment=""></song></similarSongs2></subsonic-response>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
+  <similarSongs2>
+    <song id="1" isDir="false" title="title" isVideo="false" bpm="0" comment=""></song>
+  </similarSongs2>
+</subsonic-response>
diff --git a/server/subsonic/responses/.snapshots/Responses SimilarSongs2 without data should match .JSON b/server/subsonic/responses/.snapshots/Responses SimilarSongs2 without data should match .JSON
index e7e220622..24d873e84 100644
--- a/server/subsonic/responses/.snapshots/Responses SimilarSongs2 without data should match .JSON	
+++ b/server/subsonic/responses/.snapshots/Responses SimilarSongs2 without data should match .JSON	
@@ -1 +1,8 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"similarSongs2":{}}
+{
+  "status": "ok",
+  "version": "1.8.0",
+  "type": "navidrome",
+  "serverVersion": "v0.0.0",
+  "openSubsonic": true,
+  "similarSongs2": {}
+}
diff --git a/server/subsonic/responses/.snapshots/Responses SimilarSongs2 without data should match .XML b/server/subsonic/responses/.snapshots/Responses SimilarSongs2 without data should match .XML
index 0c07e9348..ef8535e1a 100644
--- a/server/subsonic/responses/.snapshots/Responses SimilarSongs2 without data should match .XML	
+++ b/server/subsonic/responses/.snapshots/Responses SimilarSongs2 without data should match .XML	
@@ -1 +1,3 @@
-<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"><similarSongs2></similarSongs2></subsonic-response>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
+  <similarSongs2></similarSongs2>
+</subsonic-response>
diff --git a/server/subsonic/responses/.snapshots/Responses TopSongs with data should match .JSON b/server/subsonic/responses/.snapshots/Responses TopSongs with data should match .JSON
index 6e5ea0992..4deb55314 100644
--- a/server/subsonic/responses/.snapshots/Responses TopSongs with data should match .JSON	
+++ b/server/subsonic/responses/.snapshots/Responses TopSongs with data should match .JSON	
@@ -1 +1,20 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"topSongs":{"song":[{"id":"1","isDir":false,"title":"title","genres":[],"isVideo":false,"bpm":0,"comment":""}]}}
+{
+  "status": "ok",
+  "version": "1.8.0",
+  "type": "navidrome",
+  "serverVersion": "v0.0.0",
+  "openSubsonic": true,
+  "topSongs": {
+    "song": [
+      {
+        "id": "1",
+        "isDir": false,
+        "title": "title",
+        "genres": [],
+        "isVideo": false,
+        "bpm": 0,
+        "comment": ""
+      }
+    ]
+  }
+}
diff --git a/server/subsonic/responses/.snapshots/Responses TopSongs with data should match .XML b/server/subsonic/responses/.snapshots/Responses TopSongs with data should match .XML
index 34c8b82ef..1acf56f1b 100644
--- a/server/subsonic/responses/.snapshots/Responses TopSongs with data should match .XML	
+++ b/server/subsonic/responses/.snapshots/Responses TopSongs with data should match .XML	
@@ -1 +1,5 @@
-<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"><topSongs><song id="1" isDir="false" title="title" isVideo="false" bpm="0" comment=""></song></topSongs></subsonic-response>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
+  <topSongs>
+    <song id="1" isDir="false" title="title" isVideo="false" bpm="0" comment=""></song>
+  </topSongs>
+</subsonic-response>
diff --git a/server/subsonic/responses/.snapshots/Responses TopSongs without data should match .JSON b/server/subsonic/responses/.snapshots/Responses TopSongs without data should match .JSON
index dba6277cd..1dc04ae36 100644
--- a/server/subsonic/responses/.snapshots/Responses TopSongs without data should match .JSON	
+++ b/server/subsonic/responses/.snapshots/Responses TopSongs without data should match .JSON	
@@ -1 +1,8 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"topSongs":{}}
+{
+  "status": "ok",
+  "version": "1.8.0",
+  "type": "navidrome",
+  "serverVersion": "v0.0.0",
+  "openSubsonic": true,
+  "topSongs": {}
+}
diff --git a/server/subsonic/responses/.snapshots/Responses TopSongs without data should match .XML b/server/subsonic/responses/.snapshots/Responses TopSongs without data should match .XML
index 479cf867a..28429110c 100644
--- a/server/subsonic/responses/.snapshots/Responses TopSongs without data should match .XML	
+++ b/server/subsonic/responses/.snapshots/Responses TopSongs without data should match .XML	
@@ -1 +1,3 @@
-<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"><topSongs></topSongs></subsonic-response>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
+  <topSongs></topSongs>
+</subsonic-response>
diff --git a/server/subsonic/responses/.snapshots/Responses User with data should match .JSON b/server/subsonic/responses/.snapshots/Responses User with data should match .JSON
index f54aba0d3..9581a7f11 100644
--- a/server/subsonic/responses/.snapshots/Responses User with data should match .JSON	
+++ b/server/subsonic/responses/.snapshots/Responses User with data should match .JSON	
@@ -1 +1,27 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"user":{"username":"deluan","email":"navidrome@deluan.com","scrobblingEnabled":false,"adminRole":false,"settingsRole":false,"downloadRole":false,"uploadRole":false,"playlistRole":false,"coverArtRole":false,"commentRole":false,"podcastRole":false,"streamRole":false,"jukeboxRole":false,"shareRole":false,"videoConversionRole":false,"folder":[1]}}
+{
+  "status": "ok",
+  "version": "1.8.0",
+  "type": "navidrome",
+  "serverVersion": "v0.0.0",
+  "openSubsonic": true,
+  "user": {
+    "username": "deluan",
+    "email": "navidrome@deluan.com",
+    "scrobblingEnabled": false,
+    "adminRole": false,
+    "settingsRole": false,
+    "downloadRole": false,
+    "uploadRole": false,
+    "playlistRole": false,
+    "coverArtRole": false,
+    "commentRole": false,
+    "podcastRole": false,
+    "streamRole": false,
+    "jukeboxRole": false,
+    "shareRole": false,
+    "videoConversionRole": false,
+    "folder": [
+      1
+    ]
+  }
+}
diff --git a/server/subsonic/responses/.snapshots/Responses User with data should match .XML b/server/subsonic/responses/.snapshots/Responses User with data should match .XML
index cc107ad20..e3dafa529 100644
--- a/server/subsonic/responses/.snapshots/Responses User with data should match .XML	
+++ b/server/subsonic/responses/.snapshots/Responses User with data should match .XML	
@@ -1 +1,5 @@
-<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"><user username="deluan" email="navidrome@deluan.com" scrobblingEnabled="false" adminRole="false" settingsRole="false" downloadRole="false" uploadRole="false" playlistRole="false" coverArtRole="false" commentRole="false" podcastRole="false" streamRole="false" jukeboxRole="false" shareRole="false" videoConversionRole="false"><folder>1</folder></user></subsonic-response>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
+  <user username="deluan" email="navidrome@deluan.com" scrobblingEnabled="false" adminRole="false" settingsRole="false" downloadRole="false" uploadRole="false" playlistRole="false" coverArtRole="false" commentRole="false" podcastRole="false" streamRole="false" jukeboxRole="false" shareRole="false" videoConversionRole="false">
+    <folder>1</folder>
+  </user>
+</subsonic-response>
diff --git a/server/subsonic/responses/.snapshots/Responses User without data should match .JSON b/server/subsonic/responses/.snapshots/Responses User without data should match .JSON
index f904447a7..8da9efca8 100644
--- a/server/subsonic/responses/.snapshots/Responses User without data should match .JSON	
+++ b/server/subsonic/responses/.snapshots/Responses User without data should match .JSON	
@@ -1 +1,23 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"user":{"username":"deluan","scrobblingEnabled":false,"adminRole":false,"settingsRole":false,"downloadRole":false,"uploadRole":false,"playlistRole":false,"coverArtRole":false,"commentRole":false,"podcastRole":false,"streamRole":false,"jukeboxRole":false,"shareRole":false,"videoConversionRole":false}}
+{
+  "status": "ok",
+  "version": "1.8.0",
+  "type": "navidrome",
+  "serverVersion": "v0.0.0",
+  "openSubsonic": true,
+  "user": {
+    "username": "deluan",
+    "scrobblingEnabled": false,
+    "adminRole": false,
+    "settingsRole": false,
+    "downloadRole": false,
+    "uploadRole": false,
+    "playlistRole": false,
+    "coverArtRole": false,
+    "commentRole": false,
+    "podcastRole": false,
+    "streamRole": false,
+    "jukeboxRole": false,
+    "shareRole": false,
+    "videoConversionRole": false
+  }
+}
diff --git a/server/subsonic/responses/.snapshots/Responses User without data should match .XML b/server/subsonic/responses/.snapshots/Responses User without data should match .XML
index 094b1e333..3ad33d7ed 100644
--- a/server/subsonic/responses/.snapshots/Responses User without data should match .XML	
+++ b/server/subsonic/responses/.snapshots/Responses User without data should match .XML	
@@ -1 +1,3 @@
-<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"><user username="deluan" scrobblingEnabled="false" adminRole="false" settingsRole="false" downloadRole="false" uploadRole="false" playlistRole="false" coverArtRole="false" commentRole="false" podcastRole="false" streamRole="false" jukeboxRole="false" shareRole="false" videoConversionRole="false"></user></subsonic-response>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
+  <user username="deluan" scrobblingEnabled="false" adminRole="false" settingsRole="false" downloadRole="false" uploadRole="false" playlistRole="false" coverArtRole="false" commentRole="false" podcastRole="false" streamRole="false" jukeboxRole="false" shareRole="false" videoConversionRole="false"></user>
+</subsonic-response>
diff --git a/server/subsonic/responses/.snapshots/Responses Users with data should match .JSON b/server/subsonic/responses/.snapshots/Responses Users with data should match .JSON
index eee65ff25..ba29ba2ef 100644
--- a/server/subsonic/responses/.snapshots/Responses Users with data should match .JSON	
+++ b/server/subsonic/responses/.snapshots/Responses Users with data should match .JSON	
@@ -1 +1,31 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"users":{"user":[{"username":"deluan","email":"navidrome@deluan.com","scrobblingEnabled":false,"adminRole":true,"settingsRole":false,"downloadRole":false,"uploadRole":false,"playlistRole":false,"coverArtRole":false,"commentRole":false,"podcastRole":false,"streamRole":false,"jukeboxRole":false,"shareRole":false,"videoConversionRole":false,"folder":[1]}]}}
+{
+  "status": "ok",
+  "version": "1.8.0",
+  "type": "navidrome",
+  "serverVersion": "v0.0.0",
+  "openSubsonic": true,
+  "users": {
+    "user": [
+      {
+        "username": "deluan",
+        "email": "navidrome@deluan.com",
+        "scrobblingEnabled": false,
+        "adminRole": true,
+        "settingsRole": false,
+        "downloadRole": false,
+        "uploadRole": false,
+        "playlistRole": false,
+        "coverArtRole": false,
+        "commentRole": false,
+        "podcastRole": false,
+        "streamRole": false,
+        "jukeboxRole": false,
+        "shareRole": false,
+        "videoConversionRole": false,
+        "folder": [
+          1
+        ]
+      }
+    ]
+  }
+}
diff --git a/server/subsonic/responses/.snapshots/Responses Users with data should match .XML b/server/subsonic/responses/.snapshots/Responses Users with data should match .XML
index 4c5ebbe9e..d31105924 100644
--- a/server/subsonic/responses/.snapshots/Responses Users with data should match .XML	
+++ b/server/subsonic/responses/.snapshots/Responses Users with data should match .XML	
@@ -1 +1,7 @@
-<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"><users><user username="deluan" email="navidrome@deluan.com" scrobblingEnabled="false" adminRole="true" settingsRole="false" downloadRole="false" uploadRole="false" playlistRole="false" coverArtRole="false" commentRole="false" podcastRole="false" streamRole="false" jukeboxRole="false" shareRole="false" videoConversionRole="false"><folder>1</folder></user></users></subsonic-response>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
+  <users>
+    <user username="deluan" email="navidrome@deluan.com" scrobblingEnabled="false" adminRole="true" settingsRole="false" downloadRole="false" uploadRole="false" playlistRole="false" coverArtRole="false" commentRole="false" podcastRole="false" streamRole="false" jukeboxRole="false" shareRole="false" videoConversionRole="false">
+      <folder>1</folder>
+    </user>
+  </users>
+</subsonic-response>
diff --git a/server/subsonic/responses/.snapshots/Responses Users without data should match .JSON b/server/subsonic/responses/.snapshots/Responses Users without data should match .JSON
index 601ea1d6e..41ecdd67a 100644
--- a/server/subsonic/responses/.snapshots/Responses Users without data should match .JSON	
+++ b/server/subsonic/responses/.snapshots/Responses Users without data should match .JSON	
@@ -1 +1,27 @@
-{"status":"ok","version":"1.8.0","type":"navidrome","serverVersion":"v0.0.0","openSubsonic":true,"users":{"user":[{"username":"deluan","scrobblingEnabled":false,"adminRole":false,"settingsRole":false,"downloadRole":false,"uploadRole":false,"playlistRole":false,"coverArtRole":false,"commentRole":false,"podcastRole":false,"streamRole":false,"jukeboxRole":false,"shareRole":false,"videoConversionRole":false}]}}
+{
+  "status": "ok",
+  "version": "1.8.0",
+  "type": "navidrome",
+  "serverVersion": "v0.0.0",
+  "openSubsonic": true,
+  "users": {
+    "user": [
+      {
+        "username": "deluan",
+        "scrobblingEnabled": false,
+        "adminRole": false,
+        "settingsRole": false,
+        "downloadRole": false,
+        "uploadRole": false,
+        "playlistRole": false,
+        "coverArtRole": false,
+        "commentRole": false,
+        "podcastRole": false,
+        "streamRole": false,
+        "jukeboxRole": false,
+        "shareRole": false,
+        "videoConversionRole": false
+      }
+    ]
+  }
+}
diff --git a/server/subsonic/responses/.snapshots/Responses Users without data should match .XML b/server/subsonic/responses/.snapshots/Responses Users without data should match .XML
index fb7ce1161..fad50ed40 100644
--- a/server/subsonic/responses/.snapshots/Responses Users without data should match .XML	
+++ b/server/subsonic/responses/.snapshots/Responses Users without data should match .XML	
@@ -1 +1,5 @@
-<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true"><users><user username="deluan" scrobblingEnabled="false" adminRole="false" settingsRole="false" downloadRole="false" uploadRole="false" playlistRole="false" coverArtRole="false" commentRole="false" podcastRole="false" streamRole="false" jukeboxRole="false" shareRole="false" videoConversionRole="false"></user></users></subsonic-response>
+<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.8.0" type="navidrome" serverVersion="v0.0.0" openSubsonic="true">
+  <users>
+    <user username="deluan" scrobblingEnabled="false" adminRole="false" settingsRole="false" downloadRole="false" uploadRole="false" playlistRole="false" coverArtRole="false" commentRole="false" podcastRole="false" streamRole="false" jukeboxRole="false" shareRole="false" videoConversionRole="false"></user>
+  </users>
+</subsonic-response>
diff --git a/server/subsonic/responses/responses_test.go b/server/subsonic/responses/responses_test.go
index 3945aa67e..c2bc4c2bf 100644
--- a/server/subsonic/responses/responses_test.go
+++ b/server/subsonic/responses/responses_test.go
@@ -30,10 +30,10 @@ var _ = Describe("Responses", func() {
 
 	Describe("EmptyResponse", func() {
 		It("should match .XML", func() {
-			Expect(xml.Marshal(response)).To(MatchSnapshot())
+			Expect(xml.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 		})
 		It("should match .JSON", func() {
-			Expect(json.Marshal(response)).To(MatchSnapshot())
+			Expect(json.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 		})
 	})
 
@@ -42,10 +42,10 @@ var _ = Describe("Responses", func() {
 			response.License = &License{Valid: true}
 		})
 		It("should match .XML", func() {
-			Expect(xml.Marshal(response)).To(MatchSnapshot())
+			Expect(xml.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 		})
 		It("should match .JSON", func() {
-			Expect(json.Marshal(response)).To(MatchSnapshot())
+			Expect(json.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 		})
 	})
 
@@ -56,10 +56,10 @@ var _ = Describe("Responses", func() {
 
 		Context("without data", func() {
 			It("should match .XML", func() {
-				Expect(xml.Marshal(response)).To(MatchSnapshot())
+				Expect(xml.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 			It("should match .JSON", func() {
-				Expect(json.Marshal(response)).To(MatchSnapshot())
+				Expect(json.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 		})
 
@@ -72,10 +72,10 @@ var _ = Describe("Responses", func() {
 			})
 
 			It("should match .XML", func() {
-				Expect(xml.Marshal(response)).To(MatchSnapshot())
+				Expect(xml.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 			It("should match .JSON", func() {
-				Expect(json.Marshal(response)).To(MatchSnapshot())
+				Expect(json.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 		})
 	})
@@ -87,10 +87,10 @@ var _ = Describe("Responses", func() {
 
 		Context("without data", func() {
 			It("should match .XML", func() {
-				Expect(xml.Marshal(response)).To(MatchSnapshot())
+				Expect(xml.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 			It("should match .JSON", func() {
-				Expect(json.Marshal(response)).To(MatchSnapshot())
+				Expect(json.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 		})
 
@@ -112,10 +112,10 @@ var _ = Describe("Responses", func() {
 			})
 
 			It("should match .XML", func() {
-				Expect(xml.Marshal(response)).To(MatchSnapshot())
+				Expect(xml.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 			It("should match .JSON", func() {
-				Expect(json.Marshal(response)).To(MatchSnapshot())
+				Expect(json.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 		})
 	})
@@ -136,10 +136,10 @@ var _ = Describe("Responses", func() {
 			})
 
 			It("should match .XML", func() {
-				Expect(xml.Marshal(response)).To(MatchSnapshot())
+				Expect(xml.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 			It("should match .JSON", func() {
-				Expect(json.Marshal(response)).To(MatchSnapshot())
+				Expect(json.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 		})
 	})
@@ -151,10 +151,10 @@ var _ = Describe("Responses", func() {
 
 		Context("without data", func() {
 			It("should match .XML", func() {
-				Expect(xml.Marshal(response)).To(MatchSnapshot())
+				Expect(xml.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 			It("should match .JSON", func() {
-				Expect(json.Marshal(response)).To(MatchSnapshot())
+				Expect(json.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 		})
 
@@ -166,10 +166,10 @@ var _ = Describe("Responses", func() {
 			})
 
 			It("should match .XML", func() {
-				Expect(xml.Marshal(response)).To(MatchSnapshot())
+				Expect(xml.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 			It("should match .JSON", func() {
-				Expect(json.Marshal(response)).To(MatchSnapshot())
+				Expect(json.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 		})
 	})
@@ -181,10 +181,10 @@ var _ = Describe("Responses", func() {
 
 		Context("without data", func() {
 			It("should match .XML", func() {
-				Expect(xml.Marshal(response)).To(MatchSnapshot())
+				Expect(xml.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 			It("should match .JSON", func() {
-				Expect(json.Marshal(response)).To(MatchSnapshot())
+				Expect(json.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 		})
 
@@ -196,10 +196,10 @@ var _ = Describe("Responses", func() {
 			})
 
 			It("should match .XML", func() {
-				Expect(xml.Marshal(response)).To(MatchSnapshot())
+				Expect(xml.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 			It("should match .JSON", func() {
-				Expect(json.Marshal(response)).To(MatchSnapshot())
+				Expect(json.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 		})
 	})
@@ -211,10 +211,10 @@ var _ = Describe("Responses", func() {
 
 		Context("without data", func() {
 			It("should match .XML", func() {
-				Expect(xml.Marshal(response)).To(MatchSnapshot())
+				Expect(xml.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 			It("should match .JSON", func() {
-				Expect(json.Marshal(response)).To(MatchSnapshot())
+				Expect(json.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 		})
 
@@ -225,10 +225,10 @@ var _ = Describe("Responses", func() {
 			})
 
 			It("should match .XML", func() {
-				Expect(xml.Marshal(response)).To(MatchSnapshot())
+				Expect(xml.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 			It("should match .JSON", func() {
-				Expect(json.Marshal(response)).To(MatchSnapshot())
+				Expect(json.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 		})
 	})
@@ -241,10 +241,10 @@ var _ = Describe("Responses", func() {
 
 		Context("without data", func() {
 			It("should match .XML", func() {
-				Expect(xml.Marshal(response)).To(MatchSnapshot())
+				Expect(xml.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 			It("should match .JSON", func() {
-				Expect(json.Marshal(response)).To(MatchSnapshot())
+				Expect(json.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 		})
 
@@ -258,10 +258,10 @@ var _ = Describe("Responses", func() {
 			})
 
 			It("should match .XML", func() {
-				Expect(xml.Marshal(response)).To(MatchSnapshot())
+				Expect(xml.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 			It("should match .JSON", func() {
-				Expect(json.Marshal(response)).To(MatchSnapshot())
+				Expect(json.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 		})
 	})
@@ -273,10 +273,10 @@ var _ = Describe("Responses", func() {
 
 		Context("without data", func() {
 			It("should match .XML", func() {
-				Expect(xml.Marshal(response)).To(MatchSnapshot())
+				Expect(xml.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 			It("should match .JSON", func() {
-				Expect(json.Marshal(response)).To(MatchSnapshot())
+				Expect(json.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 		})
 
@@ -301,10 +301,10 @@ var _ = Describe("Responses", func() {
 			})
 
 			It("should match .XML", func() {
-				Expect(xml.Marshal(response)).To(MatchSnapshot())
+				Expect(xml.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 			It("should match .JSON", func() {
-				Expect(json.Marshal(response)).To(MatchSnapshot())
+				Expect(json.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 		})
 	})
@@ -316,10 +316,10 @@ var _ = Describe("Responses", func() {
 
 		Context("without data", func() {
 			It("should match .XML", func() {
-				Expect(xml.Marshal(response)).To(MatchSnapshot())
+				Expect(xml.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 			It("should match .JSON", func() {
-				Expect(json.Marshal(response)).To(MatchSnapshot())
+				Expect(json.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 		})
 
@@ -333,10 +333,10 @@ var _ = Describe("Responses", func() {
 			})
 
 			It("should match .XML", func() {
-				Expect(xml.Marshal(response)).To(MatchSnapshot())
+				Expect(xml.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 			It("should match .JSON", func() {
-				Expect(json.Marshal(response)).To(MatchSnapshot())
+				Expect(json.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 		})
 	})
@@ -348,10 +348,10 @@ var _ = Describe("Responses", func() {
 
 		Context("without data", func() {
 			It("should match .XML", func() {
-				Expect(xml.Marshal(response)).To(MatchSnapshot())
+				Expect(xml.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 			It("should match .JSON", func() {
-				Expect(json.Marshal(response)).To(MatchSnapshot())
+				Expect(json.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 		})
 
@@ -366,10 +366,10 @@ var _ = Describe("Responses", func() {
 			})
 
 			It("should match .XML", func() {
-				Expect(xml.Marshal(response)).To(MatchSnapshot())
+				Expect(xml.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 			It("should match .JSON", func() {
-				Expect(json.Marshal(response)).To(MatchSnapshot())
+				Expect(json.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 		})
 	})
@@ -381,10 +381,10 @@ var _ = Describe("Responses", func() {
 
 		Context("without data", func() {
 			It("should match .XML", func() {
-				Expect(xml.Marshal(response)).To(MatchSnapshot())
+				Expect(xml.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 			It("should match .JSON", func() {
-				Expect(json.Marshal(response)).To(MatchSnapshot())
+				Expect(json.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 		})
 
@@ -403,10 +403,10 @@ var _ = Describe("Responses", func() {
 				}
 			})
 			It("should match .XML", func() {
-				Expect(xml.Marshal(response)).To(MatchSnapshot())
+				Expect(xml.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 			It("should match .JSON", func() {
-				Expect(json.Marshal(response)).To(MatchSnapshot())
+				Expect(json.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 
 		})
@@ -419,10 +419,10 @@ var _ = Describe("Responses", func() {
 
 		Context("without data", func() {
 			It("should match .XML", func() {
-				Expect(xml.Marshal(response)).To(MatchSnapshot())
+				Expect(xml.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 			It("should match .JSON", func() {
-				Expect(json.Marshal(response)).To(MatchSnapshot())
+				Expect(json.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 		})
 
@@ -433,10 +433,10 @@ var _ = Describe("Responses", func() {
 				response.TopSongs.Song = child
 			})
 			It("should match .XML", func() {
-				Expect(xml.Marshal(response)).To(MatchSnapshot())
+				Expect(xml.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 			It("should match .JSON", func() {
-				Expect(json.Marshal(response)).To(MatchSnapshot())
+				Expect(json.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 		})
 	})
@@ -448,10 +448,10 @@ var _ = Describe("Responses", func() {
 
 		Context("without data", func() {
 			It("should match .XML", func() {
-				Expect(xml.Marshal(response)).To(MatchSnapshot())
+				Expect(xml.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 			It("should match .JSON", func() {
-				Expect(json.Marshal(response)).To(MatchSnapshot())
+				Expect(json.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 		})
 
@@ -462,10 +462,10 @@ var _ = Describe("Responses", func() {
 				response.SimilarSongs.Song = child
 			})
 			It("should match .XML", func() {
-				Expect(xml.Marshal(response)).To(MatchSnapshot())
+				Expect(xml.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 			It("should match .JSON", func() {
-				Expect(json.Marshal(response)).To(MatchSnapshot())
+				Expect(json.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 		})
 	})
@@ -477,10 +477,10 @@ var _ = Describe("Responses", func() {
 
 		Context("without data", func() {
 			It("should match .XML", func() {
-				Expect(xml.Marshal(response)).To(MatchSnapshot())
+				Expect(xml.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 			It("should match .JSON", func() {
-				Expect(json.Marshal(response)).To(MatchSnapshot())
+				Expect(json.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 		})
 
@@ -491,10 +491,10 @@ var _ = Describe("Responses", func() {
 				response.SimilarSongs2.Song = child
 			})
 			It("should match .XML", func() {
-				Expect(xml.Marshal(response)).To(MatchSnapshot())
+				Expect(xml.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 			It("should match .JSON", func() {
-				Expect(json.Marshal(response)).To(MatchSnapshot())
+				Expect(json.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 		})
 	})
@@ -506,10 +506,10 @@ var _ = Describe("Responses", func() {
 
 		Context("without data", func() {
 			It("should match .XML", func() {
-				Expect(xml.Marshal(response)).To(MatchSnapshot())
+				Expect(xml.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 			It("should match .JSON", func() {
-				Expect(json.Marshal(response)).To(MatchSnapshot())
+				Expect(json.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 		})
 
@@ -525,10 +525,10 @@ var _ = Describe("Responses", func() {
 				response.PlayQueue.Entry = child
 			})
 			It("should match .XML", func() {
-				Expect(xml.Marshal(response)).To(MatchSnapshot())
+				Expect(xml.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 			It("should match .JSON", func() {
-				Expect(json.Marshal(response)).To(MatchSnapshot())
+				Expect(json.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 		})
 	})
@@ -540,10 +540,10 @@ var _ = Describe("Responses", func() {
 
 		Context("without data", func() {
 			It("should match .XML", func() {
-				Expect(xml.Marshal(response)).To(MatchSnapshot())
+				Expect(xml.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 			It("should match .JSON", func() {
-				Expect(json.Marshal(response)).To(MatchSnapshot())
+				Expect(json.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 		})
 
@@ -566,10 +566,10 @@ var _ = Describe("Responses", func() {
 				response.Shares.Share = []Share{share}
 			})
 			It("should match .XML", func() {
-				Expect(xml.Marshal(response)).To(MatchSnapshot())
+				Expect(xml.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 			It("should match .JSON", func() {
-				Expect(json.Marshal(response)).To(MatchSnapshot())
+				Expect(json.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 		})
 	})
@@ -581,10 +581,10 @@ var _ = Describe("Responses", func() {
 
 		Context("without data", func() {
 			It("should match .XML", func() {
-				Expect(xml.Marshal(response)).To(MatchSnapshot())
+				Expect(xml.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 			It("should match .JSON", func() {
-				Expect(json.Marshal(response)).To(MatchSnapshot())
+				Expect(json.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 		})
 
@@ -601,10 +601,10 @@ var _ = Describe("Responses", func() {
 				response.Bookmarks.Bookmark = []Bookmark{bmk}
 			})
 			It("should match .XML", func() {
-				Expect(xml.Marshal(response)).To(MatchSnapshot())
+				Expect(xml.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 			It("should match .JSON", func() {
-				Expect(json.Marshal(response)).To(MatchSnapshot())
+				Expect(json.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 		})
 	})
@@ -616,10 +616,10 @@ var _ = Describe("Responses", func() {
 
 		Context("without data", func() {
 			It("should match .XML", func() {
-				Expect(xml.Marshal(response)).To(MatchSnapshot())
+				Expect(xml.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 			It("should match .JSON", func() {
-				Expect(json.Marshal(response)).To(MatchSnapshot())
+				Expect(json.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 		})
 
@@ -635,10 +635,10 @@ var _ = Describe("Responses", func() {
 				}
 			})
 			It("should match .XML", func() {
-				Expect(xml.Marshal(response)).To(MatchSnapshot())
+				Expect(xml.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 			It("should match .JSON", func() {
-				Expect(json.Marshal(response)).To(MatchSnapshot())
+				Expect(json.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 		})
 	})
@@ -650,10 +650,10 @@ var _ = Describe("Responses", func() {
 
 		Context("without data", func() {
 			It("should match .XML", func() {
-				Expect(xml.Marshal(response)).To(MatchSnapshot())
+				Expect(xml.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 			It("should match .JSON", func() {
-				Expect(json.Marshal(response)).To(MatchSnapshot())
+				Expect(json.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 		})
 
@@ -667,10 +667,10 @@ var _ = Describe("Responses", func() {
 				Never gonna say goodbye`
 			})
 			It("should match .XML", func() {
-				Expect(xml.Marshal(response)).To(MatchSnapshot())
+				Expect(xml.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 			It("should match .JSON", func() {
-				Expect(json.Marshal(response)).To(MatchSnapshot())
+				Expect(json.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 
 		})
@@ -683,10 +683,10 @@ var _ = Describe("Responses", func() {
 
 		Describe("without data", func() {
 			It("should match .XML", func() {
-				Expect(xml.Marshal(response)).To(MatchSnapshot())
+				Expect(xml.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 			It("should match .JSON", func() {
-				Expect(json.Marshal(response)).To(MatchSnapshot())
+				Expect(json.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 		})
 
@@ -703,10 +703,10 @@ var _ = Describe("Responses", func() {
 			})
 
 			It("should match .XML", func() {
-				Expect(xml.Marshal(response)).To(MatchSnapshot())
+				Expect(xml.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 			It("should match .JSON", func() {
-				Expect(json.Marshal(response)).To(MatchSnapshot())
+				Expect(json.MarshalIndent(response, "", "  ")).To(MatchSnapshot())
 			})
 		})
 	})