Skip to content

Commit 1dfc8a1

Browse files
committed
Add FeddUITests
1 parent 8b2abfd commit 1dfc8a1

File tree

6 files changed

+187
-5
lines changed

6 files changed

+187
-5
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<Scheme
3+
LastUpgradeVersion = "1610"
4+
version = "1.7">
5+
<BuildAction
6+
parallelizeBuildables = "YES"
7+
buildImplicitDependencies = "YES"
8+
buildArchitectures = "Automatic">
9+
<BuildActionEntries>
10+
<BuildActionEntry
11+
buildForTesting = "YES"
12+
buildForRunning = "YES"
13+
buildForProfiling = "YES"
14+
buildForArchiving = "YES"
15+
buildForAnalyzing = "YES">
16+
<BuildableReference
17+
BuildableIdentifier = "primary"
18+
BlueprintIdentifier = "FeedUI"
19+
BuildableName = "FeedUI"
20+
BlueprintName = "FeedUI"
21+
ReferencedContainer = "container:">
22+
</BuildableReference>
23+
</BuildActionEntry>
24+
</BuildActionEntries>
25+
</BuildAction>
26+
<TestAction
27+
buildConfiguration = "Debug"
28+
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
29+
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
30+
shouldUseLaunchSchemeArgsEnv = "YES"
31+
shouldAutocreateTestPlan = "YES">
32+
<Testables>
33+
<TestableReference
34+
skipped = "NO">
35+
<BuildableReference
36+
BuildableIdentifier = "primary"
37+
BlueprintIdentifier = "FeedUITests"
38+
BuildableName = "FeedUITests"
39+
BlueprintName = "FeedUITests"
40+
ReferencedContainer = "container:">
41+
</BuildableReference>
42+
</TestableReference>
43+
</Testables>
44+
</TestAction>
45+
<LaunchAction
46+
buildConfiguration = "Debug"
47+
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
48+
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
49+
launchStyle = "0"
50+
useCustomWorkingDirectory = "NO"
51+
ignoresPersistentStateOnLaunch = "NO"
52+
debugDocumentVersioning = "YES"
53+
debugServiceExtension = "internal"
54+
allowLocationSimulation = "YES">
55+
</LaunchAction>
56+
<ProfileAction
57+
buildConfiguration = "Release"
58+
shouldUseLaunchSchemeArgsEnv = "YES"
59+
savedToolIdentifier = ""
60+
useCustomWorkingDirectory = "NO"
61+
debugDocumentVersioning = "YES">
62+
<MacroExpansion>
63+
<BuildableReference
64+
BuildableIdentifier = "primary"
65+
BlueprintIdentifier = "FeedUI"
66+
BuildableName = "FeedUI"
67+
BlueprintName = "FeedUI"
68+
ReferencedContainer = "container:">
69+
</BuildableReference>
70+
</MacroExpansion>
71+
</ProfileAction>
72+
<AnalyzeAction
73+
buildConfiguration = "Debug">
74+
</AnalyzeAction>
75+
<ArchiveAction
76+
buildConfiguration = "Release"
77+
revealArchiveInOrganizer = "YES">
78+
</ArchiveAction>
79+
</Scheme>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<Scheme
3+
LastUpgradeVersion = "1610"
4+
version = "1.7">
5+
<BuildAction
6+
parallelizeBuildables = "YES"
7+
buildImplicitDependencies = "YES"
8+
buildArchitectures = "Automatic">
9+
</BuildAction>
10+
<TestAction
11+
buildConfiguration = "Debug"
12+
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
13+
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
14+
shouldUseLaunchSchemeArgsEnv = "YES"
15+
shouldAutocreateTestPlan = "YES">
16+
<Testables>
17+
<TestableReference
18+
skipped = "NO">
19+
<BuildableReference
20+
BuildableIdentifier = "primary"
21+
BlueprintIdentifier = "FeedUITests"
22+
BuildableName = "FeedUITests"
23+
BlueprintName = "FeedUITests"
24+
ReferencedContainer = "container:">
25+
</BuildableReference>
26+
</TestableReference>
27+
</Testables>
28+
</TestAction>
29+
<LaunchAction
30+
buildConfiguration = "Debug"
31+
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
32+
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
33+
launchStyle = "0"
34+
useCustomWorkingDirectory = "NO"
35+
ignoresPersistentStateOnLaunch = "NO"
36+
debugDocumentVersioning = "YES"
37+
debugServiceExtension = "internal"
38+
allowLocationSimulation = "YES">
39+
</LaunchAction>
40+
<ProfileAction
41+
buildConfiguration = "Release"
42+
shouldUseLaunchSchemeArgsEnv = "YES"
43+
savedToolIdentifier = ""
44+
useCustomWorkingDirectory = "NO"
45+
debugDocumentVersioning = "YES">
46+
</ProfileAction>
47+
<AnalyzeAction
48+
buildConfiguration = "Debug">
49+
</AnalyzeAction>
50+
<ArchiveAction
51+
buildConfiguration = "Release"
52+
revealArchiveInOrganizer = "YES">
53+
</ArchiveAction>
54+
</Scheme>

Packages/Features/Package.swift

+9-1
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,12 @@ let package = Package(
3232
name: "FeedUI",
3333
dependencies: baseDeps
3434
),
35+
.testTarget(
36+
name: "FeedUITests",
37+
dependencies: [
38+
"FeedUI",
39+
.product(name: "ViewInspector", package: "ViewInspector")]
40+
),
3541
.target(
3642
name: "PostUI",
3743
dependencies: baseDeps
@@ -53,7 +59,9 @@ let package = Package(
5359
),
5460
.testTarget(
5561
name: "DesignSystemTests",
56-
dependencies: ["DesignSystem", .product(name: "ViewInspector", package: "ViewInspector")]
62+
dependencies: [
63+
"DesignSystem",
64+
.product(name: "ViewInspector", package: "ViewInspector")]
5765
),
5866
]
5967
)

Packages/Features/Sources/FeedUI/List/FeedsListSearchField.swift

+12-2
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,22 @@
11
import SwiftUI
22

3-
struct FeedsListSearchField: View {
3+
public struct FeedsListSearchField: View {
44

55
@Binding var searchText: String
66
@Binding var isInSearch: Bool
77
var isSearchFocused: FocusState<Bool>.Binding
88

9-
var body: some View {
9+
public init(
10+
searchText: Binding<String>,
11+
isInSearch: Binding<Bool>,
12+
isSearchFocused: FocusState<Bool>.Binding
13+
) {
14+
_searchText = searchText
15+
_isInSearch = isInSearch
16+
self.isSearchFocused = isSearchFocused
17+
}
18+
19+
public var body: some View {
1020
HStack {
1121
HStack {
1222
Image(systemName: "magnifyingglass")

Packages/Features/Sources/FeedUI/List/FeedsListTitleView.swift

+14-2
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,25 @@
11
import Network
22
import SwiftUI
33

4-
struct FeedsListTitleView: View {
4+
public struct FeedsListTitleView: View {
55
@Binding var filter: FeedsListFilter
66
@Binding var searchText: String
77
@Binding var isInSearch: Bool
88
var isSearchFocused: FocusState<Bool>.Binding
9+
10+
public init(
11+
filter: Binding<FeedsListFilter>,
12+
searchText: Binding<String>,
13+
isInSearch: Binding<Bool>,
14+
isSearchFocused: FocusState<Bool>.Binding
15+
) {
16+
self._filter = filter
17+
self._searchText = searchText
18+
self._isInSearch = isInSearch
19+
self.isSearchFocused = isSearchFocused
20+
}
921

10-
var body: some View {
22+
public var body: some View {
1123
HStack(alignment: .center) {
1224
if !isInSearch {
1325
Menu {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import FeedUI
2+
import ViewInspector
3+
import Testing
4+
import SwiftUI
5+
6+
@MainActor
7+
struct FeedsListTitleViewTests {
8+
@FocusState var isSearchFocused: Bool
9+
@State var filter: FeedsListFilter = .pinned
10+
11+
@Test func testFeedTitleViewBase() throws {
12+
let view = FeedsListTitleView(filter: $filter,
13+
searchText: .constant(""),
14+
isInSearch: .constant(false),
15+
isSearchFocused: $isSearchFocused)
16+
#expect(try view.inspect().find(text: "Feeds").string() == "Feeds")
17+
#expect(try view.inspect().find(text: filter.rawValue).string() == FeedsListFilter.pinned.rawValue)
18+
}
19+
}

0 commit comments

Comments
 (0)