diff --git a/README.md b/README.md index b68ec46..6d28539 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,9 @@ TibiaData API written in Golang and deployed in container (version v3 and above) Documentation of API endpoints can be found on [docs.tibiadata.com](https://docs.tibiadata.com). +The character response's `married_to` field uses regular spaces (`U+0020`) instead +of non-breaking spaces (`U+00A0`) for both HTML and fansite API sources. + ## Table of Contents - [API versions](#api-versions) diff --git a/src/TibiaCharactersCharacter.go b/src/TibiaCharactersCharacter.go index df03b71..8945138 100644 --- a/src/TibiaCharactersCharacter.go +++ b/src/TibiaCharactersCharacter.go @@ -411,7 +411,7 @@ func TibiaCharactersCharacterImpl(BoxContentHTML, url string) (CharacterResponse characterInfo.FormerNames = fansiteData.CharacterGameInformation.FormerNames } if fansiteData.CharacterGameInformation.Spouse != nil { - characterInfo.MarriedTo = *fansiteData.CharacterGameInformation.Spouse + characterInfo.MarriedTo = strings.ReplaceAll(*fansiteData.CharacterGameInformation.Spouse, "\u00A0", " ") } if fansiteData.CharacterGameInformation.FormerWorld != nil && *fansiteData.CharacterGameInformation.FormerWorld != "" { characterInfo.FormerWorlds = strings.Split(*fansiteData.CharacterGameInformation.FormerWorld, ", ") diff --git a/src/TibiaCharactersCharacter_test.go b/src/TibiaCharactersCharacter_test.go index c7571cb..005283a 100644 --- a/src/TibiaCharactersCharacter_test.go +++ b/src/TibiaCharactersCharacter_test.go @@ -29,7 +29,7 @@ func TestFansiteUnixConversions(t *testing.T) { func TestFansiteCharacterJSONOptionalFields(t *testing.T) { comment := "first line\r\nsecond line" - spouse := "Married Character" + spouse := "Married\u00A0Character" formerWorld := "Antica, Premia" guildName := "Test Guild" guildRank := "Leader" @@ -223,6 +223,7 @@ func TestFansiteCharacterJSONFixtures(t *testing.T) { } func TestCharacterTrollefar(t *testing.T) { + var marriedTo [2]string testCases := []struct { name string fixture string @@ -243,7 +244,7 @@ func TestCharacterTrollefar(t *testing.T) { }, } - for _, tc := range testCases { + for i, tc := range testCases { t.Run(tc.name, func(t *testing.T) { file, err := static.TestFiles.Open(tc.fixture) if err != nil { @@ -279,6 +280,7 @@ func TestCharacterTrollefar(t *testing.T) { assert.Nil(character.FormerWorlds) assert.Equal("Thais", character.Residence) assert.Equal("Mighty troll", character.MarriedTo) + marriedTo[i] = character.MarriedTo assert.Nil(character.Houses) assert.Equal("Elysium", character.Guild.GuildName) assert.Equal("Follower", character.Guild.Rank) @@ -290,6 +292,9 @@ func TestCharacterTrollefar(t *testing.T) { assert.Equal(tc.expectedFirst, information.TibiaURLs[0]) }) } + + // HTML uses a non-breaking space; JSON uses a regular space. + assert.Equal(t, marriedTo[0], marriedTo[1]) } func TestCharacterMightyTroll(t *testing.T) {