// Copyright © 2022 Rangeproof Pty Ltd. All rights reserved. import Foundation import Quick import Nimble @testable import SessionMessagingKit class OpenGroupSpec: QuickSpec { override class func spec() { // MARK: - an Open Group describe("an Open Group") { // MARK: -- when initializing context("when initializing") { // MARK: ---- generates the id it("generates the id") { let openGroup: OpenGroup = OpenGroup( server: "server", roomToken: "room", publicKey: "1234", isActive: true, name: "name", roomDescription: nil, imageId: nil, imageData: nil, userCount: 0, infoUpdates: 0, sequenceNumber: 0, inboxLatestMessageId: 0, outboxLatestMessageId: 0 ) expect(openGroup.id).to(equal("server.room")) } } // MARK: -- when describing context("when describing") { // MARK: ---- includes relevant information it("includes relevant information") { let openGroup: OpenGroup = OpenGroup( server: "server", roomToken: "room", publicKey: "1234", isActive: true, name: "name", roomDescription: nil, imageId: nil, imageData: nil, userCount: 0, infoUpdates: 0, sequenceNumber: 0, inboxLatestMessageId: 0, outboxLatestMessageId: 0 ) expect(openGroup.description) .to(equal("name (Server: server, Room: room)")) } } // MARK: -- when describing in debug context("when describing in debug") { // MARK: ---- includes relevant information it("includes relevant information") { let openGroup: OpenGroup = OpenGroup( server: "server", roomToken: "room", publicKey: "1234", isActive: true, name: "name", roomDescription: nil, imageId: nil, imageData: nil, userCount: 0, infoUpdates: 0, sequenceNumber: 0, inboxLatestMessageId: 0, outboxLatestMessageId: 0 ) expect(openGroup.debugDescription) .to(equal("OpenGroup(server: \"server\", roomToken: \"room\", id: \"server.room\", publicKey: \"1234\", isActive: true, name: \"name\", roomDescription: null, imageId: null, userCount: 0, infoUpdates: 0, sequenceNumber: 0, inboxLatestMessageId: 0, outboxLatestMessageId: 0, pollFailureCount: 0, permissions: ---)")) } } // MARK: -- when generating an id context("when generating an id") { // MARK: ---- generates correctly it("generates correctly") { expect(OpenGroup.idFor(roomToken: "room", server: "server")).to(equal("server.room")) } // MARK: ---- converts the server to lowercase it("converts the server to lowercase") { expect(OpenGroup.idFor(roomToken: "room", server: "SeRVeR")).to(equal("server.room")) } // MARK: ---- maintains the casing of the roomToken it("maintains the casing of the roomToken") { expect(OpenGroup.idFor(roomToken: "RoOM", server: "server")).to(equal("server.RoOM")) } } } } }