2023-03-12 16:00:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								// GoToSocial  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// Copyright (C) GoToSocial Authors admin@gotosocial.org  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// SPDX-License-Identifier: AGPL-3.0-or-later  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// This program is free software: you can redistribute it and/or modify  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// it under the terms of the GNU Affero General Public License as published by  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// the Free Software Foundation, either version 3 of the License, or  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// (at your option) any later version.  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// This program is distributed in the hope that it will be useful,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// but WITHOUT ANY WARRANTY; without even the implied warranty of  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// GNU Affero General Public License for more details.  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// You should have received a copy of the GNU Affero General Public License  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// along with this program.  If not, see <http://www.gnu.org/licenses/>.  
						 
					
						
							
								
									
										
										
										
											2021-09-10 14:36:10 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								package  account_test  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									"context" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									"testing" 
							 
						 
					
						
							
								
									
										
										
										
											2024-04-26 13:50:46 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									"time" 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-10 14:36:10 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									"github.com/stretchr/testify/suite" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									"github.com/superseriousbusiness/gotosocial/internal/ap" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									apimodel  "github.com/superseriousbusiness/gotosocial/internal/api/model" 
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 12:52:40 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									"github.com/superseriousbusiness/gotosocial/internal/gtsmodel" 
							 
						 
					
						
							
								
									
										
										
										
											2025-04-11 12:04:16 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									"github.com/superseriousbusiness/gotosocial/internal/util" 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-10 14:36:10 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								type  AccountUpdateTestSuite  struct  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									AccountStandardTestSuite 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								func  ( suite  * AccountUpdateTestSuite )  TestAccountUpdateSimple ( )  {  
						 
					
						
							
								
									
										
										
										
											2023-05-15 12:52:40 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									testAccount  :=  & gtsmodel . Account { } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									* testAccount  =  * suite . testAccounts [ "local_account_1" ] 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-10 14:36:10 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 12:52:40 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									var  ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ctx           =  context . Background ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										locked        =  true 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										displayName   =  "new display name" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										note          =  "#hello here i am!" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										noteExpected  =  ` <p><a href="http://localhost:8080/tags/hello" class="mention hashtag" rel="tag nofollow noreferrer noopener" target="_blank">#<span>hello</span></a> here i am!</p> ` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									) 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-10 14:36:10 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 12:52:40 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									// Call update function. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									apiAccount ,  errWithCode  :=  suite . accountProcessor . Update ( ctx ,  testAccount ,  & apimodel . UpdateCredentialsRequest { 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-10 14:36:10 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										DisplayName :  & displayName , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Locked :       & locked , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Note :         & note , 
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 12:52:40 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  errWithCode  !=  nil  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										suite . FailNow ( errWithCode . Error ( ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-10 14:36:10 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 12:52:40 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									// Returned profile should be updated. 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-10 14:36:10 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									suite . True ( apiAccount . Locked ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . Equal ( displayName ,  apiAccount . DisplayName ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 12:52:40 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									suite . Equal ( noteExpected ,  apiAccount . Note ) 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-10 14:36:10 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 12:52:40 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									// We should have an update in the client api channel. 
							 
						 
					
						
							
								
									
										
										
										
											2024-04-26 13:50:46 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									msg ,  _  :=  suite . getClientMsg ( 5  *  time . Second ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// Profile update. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . Equal ( ap . ActivityUpdate ,  msg . APActivityType ) 
							 
						 
					
						
							
								
									
										
										
										
											2024-06-06 15:43:25 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									suite . Equal ( ap . ActorPerson ,  msg . APObjectType ) 
							 
						 
					
						
							
								
									
										
										
										
											2024-04-26 13:50:46 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// Correct account updated. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  msg . Origin  ==  nil  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										suite . FailNow ( "expected msg.OriginAccount not to be nil" ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . Equal ( testAccount . ID ,  msg . Origin . ID ) 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-10 14:36:10 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 12:52:40 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									// Check database model of account as well. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									dbAccount ,  err  :=  suite . db . GetAccountByID ( ctx ,  testAccount . ID ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  err  !=  nil  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										suite . FailNow ( err . Error ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2022-08-15 12:35:05 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									suite . True ( * dbAccount . Locked ) 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-10 14:36:10 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									suite . Equal ( displayName ,  dbAccount . DisplayName ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 12:52:40 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									suite . Equal ( noteExpected ,  dbAccount . Note ) 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-11 13:19:06 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								func  ( suite  * AccountUpdateTestSuite )  TestAccountUpdateWithMention ( )  {  
						 
					
						
							
								
									
										
										
										
											2023-05-15 12:52:40 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									testAccount  :=  & gtsmodel . Account { } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									* testAccount  =  * suite . testAccounts [ "local_account_1" ] 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-11 13:19:06 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-19 15:21:17 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									var  ( 
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 12:52:40 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										ctx           =  context . Background ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2022-07-19 15:21:17 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										locked        =  true 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										displayName   =  "new display name" 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-03 10:58:58 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										note          =  "#hello here i am!\n\ngo check out @1happyturtle, they have a cool account!" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										noteExpected  =  "<p><a href=\"http://localhost:8080/tags/hello\" class=\"mention hashtag\" rel=\"tag nofollow noreferrer noopener\" target=\"_blank\">#<span>hello</span></a> here i am!<br><br>go check out <span class=\"h-card\"><a href=\"http://localhost:8080/@1happyturtle\" class=\"u-url mention\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">@<span>1happyturtle</span></a></span>, they have a cool account!</p>" 
							 
						 
					
						
							
								
									
										
										
										
											2022-07-19 15:21:17 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									) 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-11 13:19:06 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 12:52:40 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									// Call update function. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									apiAccount ,  errWithCode  :=  suite . accountProcessor . Update ( ctx ,  testAccount ,  & apimodel . UpdateCredentialsRequest { 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-11 13:19:06 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										DisplayName :  & displayName , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Locked :       & locked , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Note :         & note , 
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 12:52:40 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  errWithCode  !=  nil  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										suite . FailNow ( errWithCode . Error ( ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-11 13:19:06 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 12:52:40 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									// Returned profile should be updated. 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-11 13:19:06 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									suite . True ( apiAccount . Locked ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . Equal ( displayName ,  apiAccount . DisplayName ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . Equal ( noteExpected ,  apiAccount . Note ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 12:52:40 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									// We should have an update in the client api channel. 
							 
						 
					
						
							
								
									
										
										
										
											2024-04-26 13:50:46 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									msg ,  _  :=  suite . getClientMsg ( 5  *  time . Second ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// Profile update. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . Equal ( ap . ActivityUpdate ,  msg . APActivityType ) 
							 
						 
					
						
							
								
									
										
										
										
											2024-06-06 15:43:25 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									suite . Equal ( ap . ActorPerson ,  msg . APObjectType ) 
							 
						 
					
						
							
								
									
										
										
										
											2024-04-26 13:50:46 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// Correct account updated. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  msg . Origin  ==  nil  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										suite . FailNow ( "expected msg.OriginAccount not to be nil" ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . Equal ( testAccount . ID ,  msg . Origin . ID ) 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-11 13:19:06 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 12:52:40 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									// Check database model of account as well. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									dbAccount ,  err  :=  suite . db . GetAccountByID ( ctx ,  testAccount . ID ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  err  !=  nil  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										suite . FailNow ( err . Error ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2022-08-15 12:35:05 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									suite . True ( * dbAccount . Locked ) 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-11 13:19:06 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									suite . Equal ( displayName ,  dbAccount . DisplayName ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . Equal ( noteExpected ,  dbAccount . Note ) 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-10 14:36:10 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-19 04:07:51 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								func  ( suite  * AccountUpdateTestSuite )  TestAccountUpdateWithMarkdownNote ( )  {  
						 
					
						
							
								
									
										
										
										
											2024-03-22 14:03:46 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									// Copy zork. 
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 12:52:40 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									testAccount  :=  & gtsmodel . Account { } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									* testAccount  =  * suite . testAccounts [ "local_account_1" ] 
							 
						 
					
						
							
								
									
										
										
										
											2022-11-19 04:07:51 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-03-22 14:03:46 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									// Copy zork's settings. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									settings  :=  & gtsmodel . AccountSettings { } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									* settings  =  * suite . testAccounts [ "local_account_1" ] . Settings 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									testAccount . Settings  =  settings 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 12:52:40 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									var  ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ctx           =  context . Background ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										note          =  "*hello* ~~here~~ i am!" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										noteExpected  =  ` <p><em>hello</em> <del>here</del> i am!</p> ` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									) 
							 
						 
					
						
							
								
									
										
										
										
											2022-11-19 04:07:51 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 12:52:40 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									// Set status content type of account 1 to markdown for this test. 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-22 14:03:46 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									testAccount . Settings . StatusContentType  =  "text/markdown" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  err  :=  suite . db . UpdateAccountSettings ( ctx ,  testAccount . Settings ,  "status_content_type" ) ;  err  !=  nil  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 12:52:40 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										suite . FailNow ( err . Error ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2022-11-19 04:07:51 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 12:52:40 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									// Call update function. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									apiAccount ,  errWithCode  :=  suite . accountProcessor . Update ( ctx ,  testAccount ,  & apimodel . UpdateCredentialsRequest { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Note :  & note , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  errWithCode  !=  nil  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										suite . FailNow ( errWithCode . Error ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2022-11-19 04:07:51 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 12:52:40 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									// Returned profile should be updated. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . Equal ( noteExpected ,  apiAccount . Note ) 
							 
						 
					
						
							
								
									
										
										
										
											2022-11-19 04:07:51 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 12:52:40 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									// We should have an update in the client api channel. 
							 
						 
					
						
							
								
									
										
										
										
											2024-04-26 13:50:46 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									msg ,  _  :=  suite . getClientMsg ( 5  *  time . Second ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// Profile update. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . Equal ( ap . ActivityUpdate ,  msg . APActivityType ) 
							 
						 
					
						
							
								
									
										
										
										
											2024-06-06 15:43:25 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									suite . Equal ( ap . ActorPerson ,  msg . APObjectType ) 
							 
						 
					
						
							
								
									
										
										
										
											2024-04-26 13:50:46 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// Correct account updated. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  msg . Origin  ==  nil  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										suite . FailNow ( "expected msg.OriginAccount not to be nil" ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . Equal ( testAccount . ID ,  msg . Origin . ID ) 
							 
						 
					
						
							
								
									
										
										
										
											2022-11-19 04:07:51 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 12:52:40 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									// Check database model of account as well. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									dbAccount ,  err  :=  suite . db . GetAccountByID ( ctx ,  testAccount . ID ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  err  !=  nil  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										suite . FailNow ( err . Error ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2022-11-19 04:07:51 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									suite . NoError ( err ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 12:52:40 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									suite . Equal ( noteExpected ,  dbAccount . Note ) 
							 
						 
					
						
							
								
									
										
										
										
											2022-11-19 04:07:51 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-05-09 12:16:10 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								func  ( suite  * AccountUpdateTestSuite )  TestAccountUpdateWithFields ( )  {  
						 
					
						
							
								
									
										
										
										
											2023-05-15 12:52:40 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									testAccount  :=  & gtsmodel . Account { } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									* testAccount  =  * suite . testAccounts [ "local_account_1" ] 
							 
						 
					
						
							
								
									
										
										
										
											2023-05-09 12:16:10 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 12:52:40 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									var  ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ctx           =  context . Background ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										updateFields  =  [ ] apimodel . UpdateField { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												Name :   func ( )  * string  {  s  :=  "favourite emoji" ;  return  & s  } ( ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												Value :  func ( )  * string  {  s  :=  ":rainbow:" ;  return  & s  } ( ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												Name :   func ( )  * string  {  s  :=  "my website" ;  return  & s  } ( ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												Value :  func ( )  * string  {  s  :=  "https://example.org" ;  return  & s  } ( ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										fieldsExpectedRaw  =  [ ] apimodel . Field { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												Name :        "favourite emoji" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												Value :       ":rainbow:" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												VerifiedAt :  ( * string ) ( nil ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												Name :        "my website" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												Value :       "https://example.org" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												VerifiedAt :  ( * string ) ( nil ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										fieldsExpectedParsed  =  [ ] apimodel . Field { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												Name :        "favourite emoji" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												Value :       ":rainbow:" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												VerifiedAt :  ( * string ) ( nil ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												Name :        "my website" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												Value :       "<a href=\"https://example.org\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">https://example.org</a>" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												VerifiedAt :  ( * string ) ( nil ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										emojisExpected  =  [ ] apimodel . Emoji { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												Shortcode :        "rainbow" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												URL :              "http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/original/01F8MH9H8E4VG3KDYJR9EGPXCQ.png" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												StaticURL :        "http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/static/01F8MH9H8E4VG3KDYJR9EGPXCQ.png" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												VisibleInPicker :  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												Category :         "reactions" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									apiAccount ,  errWithCode  :=  suite . accountProcessor . Update ( ctx ,  testAccount ,  & apimodel . UpdateCredentialsRequest { 
							 
						 
					
						
							
								
									
										
										
										
											2023-05-09 12:16:10 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										FieldsAttributes :  & updateFields , 
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 12:52:40 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  errWithCode  !=  nil  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										suite . FailNow ( errWithCode . Error ( ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-05-09 12:16:10 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 12:52:40 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									// Returned profile should be updated. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . EqualValues ( fieldsExpectedRaw ,  apiAccount . Source . Fields ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . EqualValues ( fieldsExpectedParsed ,  apiAccount . Fields ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . EqualValues ( emojisExpected ,  apiAccount . Emojis ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-05-09 12:16:10 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 12:52:40 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									// We should have an update in the client api channel. 
							 
						 
					
						
							
								
									
										
										
										
											2024-04-26 13:50:46 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									msg ,  _  :=  suite . getClientMsg ( 5  *  time . Second ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// Profile update. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . Equal ( ap . ActivityUpdate ,  msg . APActivityType ) 
							 
						 
					
						
							
								
									
										
										
										
											2024-06-06 15:43:25 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									suite . Equal ( ap . ActorPerson ,  msg . APObjectType ) 
							 
						 
					
						
							
								
									
										
										
										
											2024-04-26 13:50:46 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// Correct account updated. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  msg . Origin  ==  nil  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										suite . FailNow ( "expected msg.OriginAccount not to be nil" ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . Equal ( testAccount . ID ,  msg . Origin . ID ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 12:52:40 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// Check database model of account as well. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									dbAccount ,  err  :=  suite . db . GetAccountByID ( ctx ,  testAccount . ID ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  err  !=  nil  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										suite . FailNow ( err . Error ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . Equal ( fieldsExpectedParsed [ 0 ] . Name ,  dbAccount . Fields [ 0 ] . Name ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . Equal ( fieldsExpectedParsed [ 0 ] . Value ,  dbAccount . Fields [ 0 ] . Value ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . Equal ( fieldsExpectedParsed [ 1 ] . Name ,  dbAccount . Fields [ 1 ] . Name ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . Equal ( fieldsExpectedParsed [ 1 ] . Value ,  dbAccount . Fields [ 1 ] . Value ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . Equal ( fieldsExpectedRaw [ 0 ] . Name ,  dbAccount . FieldsRaw [ 0 ] . Name ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . Equal ( fieldsExpectedRaw [ 0 ] . Value ,  dbAccount . FieldsRaw [ 0 ] . Value ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . Equal ( fieldsExpectedRaw [ 1 ] . Name ,  dbAccount . FieldsRaw [ 1 ] . Name ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . Equal ( fieldsExpectedRaw [ 1 ] . Value ,  dbAccount . FieldsRaw [ 1 ] . Value ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								func  ( suite  * AccountUpdateTestSuite )  TestAccountUpdateNoteNotFields ( )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// local_account_2 already has some fields set. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// We want to ensure that the fields don't change 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// even if the account note is updated. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									testAccount  :=  & gtsmodel . Account { } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									* testAccount  =  * suite . testAccounts [ "local_account_2" ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									var  ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ctx              =  context . Background ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										fieldsRawBefore  =  len ( testAccount . FieldsRaw ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										fieldsBefore     =  len ( testAccount . Fields ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										note             =  "#hello here i am!" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										noteExpected     =  ` <p><a href="http://localhost:8080/tags/hello" class="mention hashtag" rel="tag nofollow noreferrer noopener" target="_blank">#<span>hello</span></a> here i am!</p> ` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// Call update function. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									apiAccount ,  errWithCode  :=  suite . accountProcessor . Update ( ctx ,  testAccount ,  & apimodel . UpdateCredentialsRequest { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Note :  & note , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  errWithCode  !=  nil  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										suite . FailNow ( errWithCode . Error ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// Returned profile should be updated. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . True ( apiAccount . Locked ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . Equal ( noteExpected ,  apiAccount . Note ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . Equal ( fieldsRawBefore ,  len ( apiAccount . Source . Fields ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . Equal ( fieldsBefore ,  len ( apiAccount . Fields ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// We should have an update in the client api channel. 
							 
						 
					
						
							
								
									
										
										
										
											2024-04-26 13:50:46 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									msg ,  _  :=  suite . getClientMsg ( 5  *  time . Second ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// Profile update. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . Equal ( ap . ActivityUpdate ,  msg . APActivityType ) 
							 
						 
					
						
							
								
									
										
										
										
											2024-06-06 15:43:25 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									suite . Equal ( ap . ActorPerson ,  msg . APObjectType ) 
							 
						 
					
						
							
								
									
										
										
										
											2024-04-26 13:50:46 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// Correct account updated. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  msg . Origin  ==  nil  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										suite . FailNow ( "expected msg.OriginAccount not to be nil" ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . Equal ( testAccount . ID ,  msg . Origin . ID ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 12:52:40 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// Check database model of account as well. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									dbAccount ,  err  :=  suite . db . GetAccountByID ( ctx ,  testAccount . ID ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  err  !=  nil  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										suite . FailNow ( err . Error ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . True ( * dbAccount . Locked ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . Equal ( noteExpected ,  dbAccount . Note ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . Equal ( fieldsRawBefore ,  len ( dbAccount . FieldsRaw ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . Equal ( fieldsBefore ,  len ( dbAccount . Fields ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-05-09 12:16:10 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-04-11 12:04:16 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								func  ( suite  * AccountUpdateTestSuite )  TestAccountUpdateBotNotBot ( )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									testAccount  :=  & gtsmodel . Account { } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									* testAccount  =  * suite . testAccounts [ "local_account_1" ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									ctx  :=  context . Background ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// Call update function to set bot = true. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									apiAccount ,  errWithCode  :=  suite . accountProcessor . Update ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ctx , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										testAccount , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										& apimodel . UpdateCredentialsRequest { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											Bot :  util . Ptr ( true ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  errWithCode  !=  nil  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										suite . FailNow ( errWithCode . Error ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// Returned profile should be updated. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . True ( apiAccount . Bot ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// Check database model of account as well. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									dbAccount ,  err  :=  suite . db . GetAccountByID ( ctx ,  testAccount . ID ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  err  !=  nil  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										suite . FailNow ( err . Error ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . True ( dbAccount . ActorType . IsBot ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// Call update function to set bot = false. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									apiAccount ,  errWithCode  =  suite . accountProcessor . Update ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										ctx , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										testAccount , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										& apimodel . UpdateCredentialsRequest { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											Bot :  util . Ptr ( false ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  errWithCode  !=  nil  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										suite . FailNow ( errWithCode . Error ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// Returned profile should be updated. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . False ( apiAccount . Bot ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// Check database model of account as well. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									dbAccount ,  err  =  suite . db . GetAccountByID ( ctx ,  testAccount . ID ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  err  !=  nil  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										suite . FailNow ( err . Error ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . False ( dbAccount . ActorType . IsBot ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-09-10 14:36:10 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								func  TestAccountUpdateTestSuite ( t  * testing . T )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									suite . Run ( t ,  new ( AccountUpdateTestSuite ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}