Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion NativeAppTemplate/App.swift
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@ private final class NullSessionController: SessionControllerProtocol {
var shouldUpdateApp: Bool = false
var shouldUpdatePrivacy: Bool = false
var shouldUpdateTerms: Bool = false
var maximumNameLength: Int = 100
var shopLimitCount: Int = 0
var shopkeeper: Shopkeeper?
var hasPermissions: Bool {
Expand Down
1 change: 1 addition & 0 deletions NativeAppTemplate/Constants.swift
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ enum NativeAppTemplateConstants {

// MARK: - ItemTag

static let maximumItemTagNameLength = 100
static let maximumItemTagDescriptionLength = 1_000

// MARK: - Corner Radius
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ struct PermissionsResponse: Sendable {
var iosAppVersion: Int
var shouldUpdatePrivacy: Bool
var shouldUpdateTerms: Bool
var maximumNameLength: Int
var shopLimitCount: Int
}

Expand Down Expand Up @@ -49,8 +48,6 @@ struct PermissionsRequest: Request {
throw NativeAppTemplateAPIError.responseMissingRequiredMeta(field: "should_update_terms")
}

let maximumNameLength = doc.meta["maximum_name_length"] as? Int ?? 100

guard let shopLimitCount = doc.meta["shop_limit_count"] as? Int else {
throw NativeAppTemplateAPIError.responseMissingRequiredMeta(field: "shop_limit_count")
}
Expand All @@ -59,7 +56,6 @@ struct PermissionsRequest: Request {
iosAppVersion: iosAppVersion,
shouldUpdatePrivacy: shouldUpdatePrivacy,
shouldUpdateTerms: shouldUpdateTerms,
maximumNameLength: maximumNameLength,
shopLimitCount: shopLimitCount
)
}
Expand Down
3 changes: 0 additions & 3 deletions NativeAppTemplate/Sessions/SessionController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ import Observation
var shouldUpdateApp = false
var shouldUpdatePrivacy = false
var shouldUpdateTerms = false
var maximumNameLength = 100
var shopLimitCount = 0

var shopkeeper: Shopkeeper? {
Expand Down Expand Up @@ -171,8 +170,6 @@ import Observation
shouldUpdateApp = Int(Bundle.main.appBuild)! < permissionsResponse.iosAppVersion
shouldUpdatePrivacy = permissionsResponse.shouldUpdatePrivacy
shouldUpdateTerms = permissionsResponse.shouldUpdateTerms
maximumNameLength = permissionsResponse.maximumNameLength

shopLimitCount = permissionsResponse.shopLimitCount

didFetchPermissions = true
Expand Down
1 change: 0 additions & 1 deletion NativeAppTemplate/Sessions/SessionControllerProtocol.swift
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ protocol SessionControllerProtocol: AnyObject, Observable, Sendable {
var shouldUpdateApp: Bool { get set }
var shouldUpdatePrivacy: Bool { get set }
var shouldUpdateTerms: Bool { get set }
var maximumNameLength: Int { get set }
var shopLimitCount: Int { get set }

var shopkeeper: Shopkeeper? { get set }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,6 @@ private extension ItemTagDetailView {
viewModel: ItemTagEditViewModel(
itemTagRepository: dataManager.itemTagRepository,
messageBus: messageBus,
sessionController: dataManager.sessionController,
itemTagId: viewModel.itemTagId
)
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,18 +18,15 @@ final class ItemTagEditViewModel {

private let itemTagRepository: ItemTagRepositoryProtocol
private let messageBus: MessageBus
private let sessionController: SessionControllerProtocol
private let itemTagId: String

init(
itemTagRepository: ItemTagRepositoryProtocol,
messageBus: MessageBus,
sessionController: SessionControllerProtocol,
itemTagId: String
) {
self.itemTagRepository = itemTagRepository
self.messageBus = messageBus
self.sessionController = sessionController
self.itemTagId = itemTagId
}

Expand Down Expand Up @@ -70,7 +67,7 @@ final class ItemTagEditViewModel {
}

var maximumNameLength: Int {
sessionController.maximumNameLength
NativeAppTemplateConstants.maximumItemTagNameLength
}

var maximumDescriptionLength: Int {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,18 +16,15 @@ final class ItemTagCreateViewModel {

private let itemTagRepository: ItemTagRepositoryProtocol
private let messageBus: MessageBus
private let sessionController: SessionControllerProtocol
private let shopId: String

init(
itemTagRepository: ItemTagRepositoryProtocol,
messageBus: MessageBus,
sessionController: SessionControllerProtocol,
shopId: String
) {
self.itemTagRepository = itemTagRepository
self.messageBus = messageBus
self.sessionController = sessionController
self.shopId = shopId
}

Expand All @@ -54,7 +51,7 @@ final class ItemTagCreateViewModel {
}

var maximumNameLength: Int {
sessionController.maximumNameLength
NativeAppTemplateConstants.maximumItemTagNameLength
}

var maximumDescriptionLength: Int {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,6 @@ private extension ItemTagListView {
viewModel: ItemTagCreateViewModel(
itemTagRepository: dataManager.itemTagRepository,
messageBus: messageBus,
sessionController: dataManager.sessionController,
shopId: viewModel.shop.id
)
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ import Foundation
public var shouldUpdateTerms: Bool = false
public var shouldThrowPrivacyError: Bool = false
public var shouldThrowTermsError: Bool = false
public var maximumNameLength: Int = 100
public var shopLimitCount: Int = 1

public var shopkeeper: Shopkeeper?
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ import Testing
@MainActor
@Suite
struct ItemTagEditViewModelTest {
let sessionController = TestSessionController()
let itemTagRepository = TestItemTagRepository(
itemTagsService: ItemTagsService()
)
Expand All @@ -36,7 +35,6 @@ struct ItemTagEditViewModelTest {
let viewModel = ItemTagEditViewModel(
itemTagRepository: itemTagRepository,
messageBus: messageBus,
sessionController: sessionController,
itemTagId: itemTagId
)

Expand All @@ -50,24 +48,21 @@ struct ItemTagEditViewModelTest {

@Test
func maximumNameLength() {
sessionController.maximumNameLength = 6

let viewModel = ItemTagEditViewModel(
itemTagRepository: itemTagRepository,
messageBus: messageBus,
sessionController: sessionController,
itemTagId: itemTagId
)

#expect(viewModel.maximumNameLength == 6)
#expect(viewModel.maximumNameLength == 100)
}

@Test
func maximumDescriptionLength() {
let viewModel = ItemTagEditViewModel(
itemTagRepository: itemTagRepository,
messageBus: messageBus,
sessionController: sessionController,
itemTagId: itemTagId
)

Expand All @@ -79,7 +74,6 @@ struct ItemTagEditViewModelTest {
let viewModel = ItemTagEditViewModel(
itemTagRepository: itemTagRepository,
messageBus: messageBus,
sessionController: sessionController,
itemTagId: itemTagId
)

Expand All @@ -101,7 +95,6 @@ struct ItemTagEditViewModelTest {
let viewModel = ItemTagEditViewModel(
itemTagRepository: itemTagRepository,
messageBus: messageBus,
sessionController: sessionController,
itemTagId: itemTagId
)

Expand All @@ -126,7 +119,6 @@ struct ItemTagEditViewModelTest {
let viewModel = ItemTagEditViewModel(
itemTagRepository: itemTagRepository,
messageBus: messageBus,
sessionController: sessionController,
itemTagId: itemTagId
)

Expand All @@ -151,13 +143,11 @@ struct ItemTagEditViewModelTest {
(String(repeating: "x", count: 101), true) // 101 → invalid
])
func nameValidation(name: String, shouldBeInvalid: Bool) async {
sessionController.maximumNameLength = 100
itemTagRepository.setItemTags(itemTags: [testItemTag])

let viewModel = ItemTagEditViewModel(
itemTagRepository: itemTagRepository,
messageBus: messageBus,
sessionController: sessionController,
itemTagId: itemTagId
)

Expand All @@ -183,7 +173,6 @@ struct ItemTagEditViewModelTest {
let viewModel = ItemTagEditViewModel(
itemTagRepository: itemTagRepository,
messageBus: messageBus,
sessionController: sessionController,
itemTagId: itemTagId
)

Expand All @@ -204,7 +193,6 @@ struct ItemTagEditViewModelTest {
let viewModel = ItemTagEditViewModel(
itemTagRepository: itemTagRepository,
messageBus: messageBus,
sessionController: sessionController,
itemTagId: itemTagId
)

Expand Down Expand Up @@ -238,27 +226,24 @@ struct ItemTagEditViewModelTest {

@Test
func validateNameLengthTruncatesCorrectly() {
sessionController.maximumNameLength = 3

let viewModel = ItemTagEditViewModel(
itemTagRepository: itemTagRepository,
messageBus: messageBus,
sessionController: sessionController,
itemTagId: itemTagId
)

viewModel.name = "ABCDEFGH"
viewModel.name = String(repeating: "A", count: 100) + "EXTRA"
viewModel.validateNameLength()

#expect(viewModel.name == "ABC")
#expect(viewModel.name == String(repeating: "A", count: 100))
}

@Test
func validateDescriptionLengthTruncatesCorrectly() {
let viewModel = ItemTagEditViewModel(
itemTagRepository: itemTagRepository,
messageBus: messageBus,
sessionController: sessionController,
itemTagId: itemTagId
)

Expand All @@ -275,7 +260,6 @@ struct ItemTagEditViewModelTest {
let viewModel = ItemTagEditViewModel(
itemTagRepository: itemTagRepository,
messageBus: messageBus,
sessionController: sessionController,
itemTagId: itemTagId
)

Expand Down Expand Up @@ -310,7 +294,6 @@ struct ItemTagEditViewModelTest {
let viewModel = ItemTagEditViewModel(
itemTagRepository: itemTagRepository,
messageBus: messageBus,
sessionController: sessionController,
itemTagId: itemTagId
)

Expand Down Expand Up @@ -344,7 +327,6 @@ struct ItemTagEditViewModelTest {
let viewModel = ItemTagEditViewModel(
itemTagRepository: itemTagRepository,
messageBus: messageBus,
sessionController: sessionController,
itemTagId: itemTagId
)

Expand Down
Loading
Loading