mirror of https://github.com/oxen-io/session-ios
				
				
				
			
			You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			101 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Swift
		
	
		
		
			
		
	
	
			101 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Swift
		
	
| 
											4 years ago
										 | // Copyright © 2022 Rangeproof Pty Ltd. All rights reserved. | ||
|  | 
 | ||
|  | import Foundation | ||
|  | 
 | ||
|  | import Quick | ||
|  | import Nimble | ||
|  | 
 | ||
|  | @testable import SessionMessagingKit | ||
|  | 
 | ||
|  | class RoomSpec: QuickSpec { | ||
|  |     // MARK: - Spec | ||
|  | 
 | ||
|  |     override func spec() { | ||
|  |         describe("a Room") { | ||
|  |             context("when decoding") { | ||
|  |                 it("defaults admin and moderator values to false if omitted") { | ||
|  |                     let roomJson: String = """
 | ||
|  |                     { | ||
|  |                         "token": "testToken", | ||
|  |                         "name": "testName", | ||
|  |                         "description": "testDescription", | ||
|  |                         "info_updates": 0, | ||
|  |                         "message_sequence": 0, | ||
|  |                         "created": 1, | ||
|  |                                  | ||
|  |                         "active_users": 0, | ||
|  |                         "active_users_cutoff": 0, | ||
|  |                         "image_id": 0, | ||
|  |                         "pinned_messages": [], | ||
|  |                                  | ||
|  |                         "admins": [], | ||
|  |                         "hidden_admins": [], | ||
|  |                                  | ||
|  |                         "moderators": [], | ||
|  |                         "hidden_moderators": [], | ||
|  |                                  | ||
|  |                         "read": true, | ||
|  |                         "default_read": true, | ||
|  |                         "default_accessible": true, | ||
|  |                         "write": true, | ||
|  |                         "default_write": true, | ||
|  |                         "upload": true, | ||
|  |                         "default_upload": true | ||
|  |                     } | ||
|  |                     """
 | ||
|  |                     let roomData: Data = roomJson.data(using: .utf8)! | ||
|  |                     let result: OpenGroupAPI.Room = try! JSONDecoder().decode(OpenGroupAPI.Room.self, from: roomData) | ||
|  |                      | ||
|  |                     expect(result.admin).to(beFalse()) | ||
|  |                     expect(result.globalAdmin).to(beFalse()) | ||
|  |                     expect(result.moderator).to(beFalse()) | ||
|  |                     expect(result.globalModerator).to(beFalse()) | ||
|  |                 } | ||
|  |                  | ||
|  |                 it("sets the admin and moderator values when provided") { | ||
|  |                     let roomJson: String = """
 | ||
|  |                     { | ||
|  |                         "token": "testToken", | ||
|  |                         "name": "testName", | ||
|  |                         "description": "testDescription", | ||
|  |                         "info_updates": 0, | ||
|  |                         "message_sequence": 0, | ||
|  |                         "created": 1, | ||
|  |                                  | ||
|  |                         "active_users": 0, | ||
|  |                         "active_users_cutoff": 0, | ||
|  |                         "image_id": 0, | ||
|  |                         "pinned_messages": [], | ||
|  |                          | ||
|  |                         "admin": true, | ||
|  |                         "global_admin": true, | ||
|  |                         "admins": [], | ||
|  |                         "hidden_admins": [], | ||
|  |                          | ||
|  |                         "moderator": true, | ||
|  |                         "global_moderator": true, | ||
|  |                         "moderators": [], | ||
|  |                         "hidden_moderators": [], | ||
|  |                                  | ||
|  |                         "read": true, | ||
|  |                         "default_read": true, | ||
|  |                         "default_accessible": true, | ||
|  |                         "write": true, | ||
|  |                         "default_write": true, | ||
|  |                         "upload": true, | ||
|  |                         "default_upload": true | ||
|  |                     } | ||
|  |                     """
 | ||
|  |                     let roomData: Data = roomJson.data(using: .utf8)! | ||
|  |                     let result: OpenGroupAPI.Room = try! JSONDecoder().decode(OpenGroupAPI.Room.self, from: roomData) | ||
|  |                      | ||
|  |                     expect(result.admin).to(beTrue()) | ||
|  |                     expect(result.globalAdmin).to(beTrue()) | ||
|  |                     expect(result.moderator).to(beTrue()) | ||
|  |                     expect(result.globalModerator).to(beTrue()) | ||
|  |                 } | ||
|  |             } | ||
|  |         } | ||
|  |     } | ||
|  | } |