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.
		
		
		
		
		
			
		
			
				
	
	
		
			103 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Swift
		
	
			
		
		
	
	
			103 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Swift
		
	
| // Copyright © 2022 Rangeproof Pty Ltd. All rights reserved.
 | |
| 
 | |
| import Foundation
 | |
| 
 | |
| import Quick
 | |
| import Nimble
 | |
| 
 | |
| @testable import SessionMessagingKit
 | |
| 
 | |
| class RoomSpec: QuickSpec {
 | |
|     override class func spec() {
 | |
|         // MARK: - a Room
 | |
|         describe("a Room") {
 | |
|             // MARK: -- when decoding
 | |
|             context("when decoding") {
 | |
|                 // MARK: ---- defaults admin and moderator values to false if omitted
 | |
|                 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())
 | |
|                 }
 | |
|                 
 | |
|                 // MARK: ---- sets the admin and moderator values when provided
 | |
|                 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())
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| }
 |