├── .github └── FUNDING.yml ├── .gitignore ├── .swiftlint.yml ├── .travis.yml ├── CountriesSwiftUI.xcodeproj ├── project.pbxproj └── xcshareddata │ └── xcschemes │ └── CountriesSwiftUI.xcscheme ├── CountriesSwiftUI ├── Core │ ├── App.swift │ ├── AppDelegate.swift │ ├── AppState.swift │ ├── DeepLinksHandler.swift │ ├── PushNotificationsHandler.swift │ └── SystemEventsHandler.swift ├── DependencyInjection │ ├── AppEnvironment.swift │ └── DIContainer.swift ├── Interactors │ ├── CountriesInteractor.swift │ ├── ImagesInteractor.swift │ └── UserPermissionsInteractor.swift ├── Repositories │ ├── Database │ │ ├── CountriesDBRepository.swift │ │ └── ModelContainer.swift │ ├── Models │ │ ├── AppSchema.swift │ │ ├── Country.swift │ │ ├── CountryCurrency.swift │ │ ├── CountryDetails.swift │ │ └── MockedData.swift │ └── WebAPI │ │ ├── CountriesWebRepository.swift │ │ ├── ImagesWebRepository.swift │ │ ├── PushTokenWebRepository.swift │ │ └── WebRepository.swift ├── Resources │ ├── Assets.xcassets │ │ ├── AccentColor.colorset │ │ │ └── Contents.json │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ ├── Localizable.xcstrings │ └── Preview Assets.xcassets │ │ └── Contents.json ├── UI │ ├── Common │ │ ├── ErrorView.swift │ │ ├── ImageView.swift │ │ └── Query+Search.swift │ ├── CountriesList │ │ ├── CountriesListView.swift │ │ ├── CountryCell.swift │ │ └── LocaleReader.swift │ ├── CountryDetails │ │ ├── CountryDetailsView.swift │ │ ├── DetailRow.swift │ │ └── ModalFlagView.swift │ └── RootViewModifier.swift └── Utilities │ ├── CancelBag.swift │ ├── Helpers.swift │ ├── Loadable.swift │ └── Store.swift ├── LICENSE ├── Package.swift ├── README.md └── UnitTests ├── Mocks ├── Interactors │ ├── CountriesInteractorTests.swift │ ├── ImagesInteractorTests.swift │ └── UserPermissionsInteractorTests.swift ├── Mock.swift ├── MockedDBRepositories.swift ├── MockedInteractors.swift ├── MockedSystemEventsHandler.swift ├── MockedSystemPermissions.swift ├── MockedWebRepositories.swift └── NetworkMocking │ ├── MockedResponse.swift │ └── RequestMocking.swift ├── Repositories ├── CountriesDBRepositoryTests.swift ├── CountriesWebRepositoryTests.swift ├── ImageWebRepositoryTests.swift ├── PushTokenWebRepositoryTests.swift └── WebRepositoryTests.swift ├── System ├── DeepLinksHandlerTests.swift └── PushNotificationsHandlerTests.swift ├── TestHelpers.swift ├── UI ├── CountriesListTests.swift ├── DeepLinkUITests.swift ├── ImageViewTests.swift ├── ModalFlagViewTests.swift └── RootViewAppearanceTests.swift └── Utilities ├── HelpersTests.swift └── LoadableTests.swift /.github/FUNDING.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/.github/FUNDING.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/.gitignore -------------------------------------------------------------------------------- /.swiftlint.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/.swiftlint.yml -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/.travis.yml -------------------------------------------------------------------------------- /CountriesSwiftUI.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /CountriesSwiftUI.xcodeproj/xcshareddata/xcschemes/CountriesSwiftUI.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI.xcodeproj/xcshareddata/xcschemes/CountriesSwiftUI.xcscheme -------------------------------------------------------------------------------- /CountriesSwiftUI/Core/App.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI/Core/App.swift -------------------------------------------------------------------------------- /CountriesSwiftUI/Core/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI/Core/AppDelegate.swift -------------------------------------------------------------------------------- /CountriesSwiftUI/Core/AppState.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI/Core/AppState.swift -------------------------------------------------------------------------------- /CountriesSwiftUI/Core/DeepLinksHandler.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI/Core/DeepLinksHandler.swift -------------------------------------------------------------------------------- /CountriesSwiftUI/Core/PushNotificationsHandler.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI/Core/PushNotificationsHandler.swift -------------------------------------------------------------------------------- /CountriesSwiftUI/Core/SystemEventsHandler.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI/Core/SystemEventsHandler.swift -------------------------------------------------------------------------------- /CountriesSwiftUI/DependencyInjection/AppEnvironment.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI/DependencyInjection/AppEnvironment.swift -------------------------------------------------------------------------------- /CountriesSwiftUI/DependencyInjection/DIContainer.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI/DependencyInjection/DIContainer.swift -------------------------------------------------------------------------------- /CountriesSwiftUI/Interactors/CountriesInteractor.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI/Interactors/CountriesInteractor.swift -------------------------------------------------------------------------------- /CountriesSwiftUI/Interactors/ImagesInteractor.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI/Interactors/ImagesInteractor.swift -------------------------------------------------------------------------------- /CountriesSwiftUI/Interactors/UserPermissionsInteractor.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI/Interactors/UserPermissionsInteractor.swift -------------------------------------------------------------------------------- /CountriesSwiftUI/Repositories/Database/CountriesDBRepository.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI/Repositories/Database/CountriesDBRepository.swift -------------------------------------------------------------------------------- /CountriesSwiftUI/Repositories/Database/ModelContainer.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI/Repositories/Database/ModelContainer.swift -------------------------------------------------------------------------------- /CountriesSwiftUI/Repositories/Models/AppSchema.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI/Repositories/Models/AppSchema.swift -------------------------------------------------------------------------------- /CountriesSwiftUI/Repositories/Models/Country.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI/Repositories/Models/Country.swift -------------------------------------------------------------------------------- /CountriesSwiftUI/Repositories/Models/CountryCurrency.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI/Repositories/Models/CountryCurrency.swift -------------------------------------------------------------------------------- /CountriesSwiftUI/Repositories/Models/CountryDetails.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI/Repositories/Models/CountryDetails.swift -------------------------------------------------------------------------------- /CountriesSwiftUI/Repositories/Models/MockedData.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI/Repositories/Models/MockedData.swift -------------------------------------------------------------------------------- /CountriesSwiftUI/Repositories/WebAPI/CountriesWebRepository.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI/Repositories/WebAPI/CountriesWebRepository.swift -------------------------------------------------------------------------------- /CountriesSwiftUI/Repositories/WebAPI/ImagesWebRepository.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI/Repositories/WebAPI/ImagesWebRepository.swift -------------------------------------------------------------------------------- /CountriesSwiftUI/Repositories/WebAPI/PushTokenWebRepository.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI/Repositories/WebAPI/PushTokenWebRepository.swift -------------------------------------------------------------------------------- /CountriesSwiftUI/Repositories/WebAPI/WebRepository.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI/Repositories/WebAPI/WebRepository.swift -------------------------------------------------------------------------------- /CountriesSwiftUI/Resources/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI/Resources/Assets.xcassets/AccentColor.colorset/Contents.json -------------------------------------------------------------------------------- /CountriesSwiftUI/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /CountriesSwiftUI/Resources/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI/Resources/Assets.xcassets/Contents.json -------------------------------------------------------------------------------- /CountriesSwiftUI/Resources/Localizable.xcstrings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI/Resources/Localizable.xcstrings -------------------------------------------------------------------------------- /CountriesSwiftUI/Resources/Preview Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI/Resources/Preview Assets.xcassets/Contents.json -------------------------------------------------------------------------------- /CountriesSwiftUI/UI/Common/ErrorView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI/UI/Common/ErrorView.swift -------------------------------------------------------------------------------- /CountriesSwiftUI/UI/Common/ImageView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI/UI/Common/ImageView.swift -------------------------------------------------------------------------------- /CountriesSwiftUI/UI/Common/Query+Search.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI/UI/Common/Query+Search.swift -------------------------------------------------------------------------------- /CountriesSwiftUI/UI/CountriesList/CountriesListView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI/UI/CountriesList/CountriesListView.swift -------------------------------------------------------------------------------- /CountriesSwiftUI/UI/CountriesList/CountryCell.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI/UI/CountriesList/CountryCell.swift -------------------------------------------------------------------------------- /CountriesSwiftUI/UI/CountriesList/LocaleReader.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI/UI/CountriesList/LocaleReader.swift -------------------------------------------------------------------------------- /CountriesSwiftUI/UI/CountryDetails/CountryDetailsView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI/UI/CountryDetails/CountryDetailsView.swift -------------------------------------------------------------------------------- /CountriesSwiftUI/UI/CountryDetails/DetailRow.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI/UI/CountryDetails/DetailRow.swift -------------------------------------------------------------------------------- /CountriesSwiftUI/UI/CountryDetails/ModalFlagView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI/UI/CountryDetails/ModalFlagView.swift -------------------------------------------------------------------------------- /CountriesSwiftUI/UI/RootViewModifier.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI/UI/RootViewModifier.swift -------------------------------------------------------------------------------- /CountriesSwiftUI/Utilities/CancelBag.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI/Utilities/CancelBag.swift -------------------------------------------------------------------------------- /CountriesSwiftUI/Utilities/Helpers.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI/Utilities/Helpers.swift -------------------------------------------------------------------------------- /CountriesSwiftUI/Utilities/Loadable.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI/Utilities/Loadable.swift -------------------------------------------------------------------------------- /CountriesSwiftUI/Utilities/Store.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/CountriesSwiftUI/Utilities/Store.swift -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/LICENSE -------------------------------------------------------------------------------- /Package.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/Package.swift -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/README.md -------------------------------------------------------------------------------- /UnitTests/Mocks/Interactors/CountriesInteractorTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/UnitTests/Mocks/Interactors/CountriesInteractorTests.swift -------------------------------------------------------------------------------- /UnitTests/Mocks/Interactors/ImagesInteractorTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/UnitTests/Mocks/Interactors/ImagesInteractorTests.swift -------------------------------------------------------------------------------- /UnitTests/Mocks/Interactors/UserPermissionsInteractorTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/UnitTests/Mocks/Interactors/UserPermissionsInteractorTests.swift -------------------------------------------------------------------------------- /UnitTests/Mocks/Mock.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/UnitTests/Mocks/Mock.swift -------------------------------------------------------------------------------- /UnitTests/Mocks/MockedDBRepositories.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/UnitTests/Mocks/MockedDBRepositories.swift -------------------------------------------------------------------------------- /UnitTests/Mocks/MockedInteractors.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/UnitTests/Mocks/MockedInteractors.swift -------------------------------------------------------------------------------- /UnitTests/Mocks/MockedSystemEventsHandler.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/UnitTests/Mocks/MockedSystemEventsHandler.swift -------------------------------------------------------------------------------- /UnitTests/Mocks/MockedSystemPermissions.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/UnitTests/Mocks/MockedSystemPermissions.swift -------------------------------------------------------------------------------- /UnitTests/Mocks/MockedWebRepositories.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/UnitTests/Mocks/MockedWebRepositories.swift -------------------------------------------------------------------------------- /UnitTests/Mocks/NetworkMocking/MockedResponse.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/UnitTests/Mocks/NetworkMocking/MockedResponse.swift -------------------------------------------------------------------------------- /UnitTests/Mocks/NetworkMocking/RequestMocking.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/UnitTests/Mocks/NetworkMocking/RequestMocking.swift -------------------------------------------------------------------------------- /UnitTests/Repositories/CountriesDBRepositoryTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/UnitTests/Repositories/CountriesDBRepositoryTests.swift -------------------------------------------------------------------------------- /UnitTests/Repositories/CountriesWebRepositoryTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/UnitTests/Repositories/CountriesWebRepositoryTests.swift -------------------------------------------------------------------------------- /UnitTests/Repositories/ImageWebRepositoryTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/UnitTests/Repositories/ImageWebRepositoryTests.swift -------------------------------------------------------------------------------- /UnitTests/Repositories/PushTokenWebRepositoryTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/UnitTests/Repositories/PushTokenWebRepositoryTests.swift -------------------------------------------------------------------------------- /UnitTests/Repositories/WebRepositoryTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/UnitTests/Repositories/WebRepositoryTests.swift -------------------------------------------------------------------------------- /UnitTests/System/DeepLinksHandlerTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/UnitTests/System/DeepLinksHandlerTests.swift -------------------------------------------------------------------------------- /UnitTests/System/PushNotificationsHandlerTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/UnitTests/System/PushNotificationsHandlerTests.swift -------------------------------------------------------------------------------- /UnitTests/TestHelpers.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/UnitTests/TestHelpers.swift -------------------------------------------------------------------------------- /UnitTests/UI/CountriesListTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/UnitTests/UI/CountriesListTests.swift -------------------------------------------------------------------------------- /UnitTests/UI/DeepLinkUITests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/UnitTests/UI/DeepLinkUITests.swift -------------------------------------------------------------------------------- /UnitTests/UI/ImageViewTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/UnitTests/UI/ImageViewTests.swift -------------------------------------------------------------------------------- /UnitTests/UI/ModalFlagViewTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/UnitTests/UI/ModalFlagViewTests.swift -------------------------------------------------------------------------------- /UnitTests/UI/RootViewAppearanceTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/UnitTests/UI/RootViewAppearanceTests.swift -------------------------------------------------------------------------------- /UnitTests/Utilities/HelpersTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/UnitTests/Utilities/HelpersTests.swift -------------------------------------------------------------------------------- /UnitTests/Utilities/LoadableTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalexn/clean-architecture-swiftui/HEAD/UnitTests/Utilities/LoadableTests.swift --------------------------------------------------------------------------------