session-ios/SessionMessagingKitTests/Open Groups/Models/RoomSpec.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())
}
}
}
}
}