@@ -28,6 +28,54 @@ describe("useOutlet", () => {
28
28
29
29
expect ( renderer . toJSON ( ) ) . toBeNull ( ) ;
30
30
} ) ;
31
+
32
+ it ( "renders the fallback" , ( ) => {
33
+ function Home ( ) {
34
+ let outlet = useOutlet ( ) ;
35
+ return < div > { outlet ? "outlet" : "no outlet" } </ div > ;
36
+ }
37
+
38
+ let renderer : TestRenderer . ReactTestRenderer ;
39
+ TestRenderer . act ( ( ) => {
40
+ renderer = TestRenderer . create (
41
+ < MemoryRouter initialEntries = { [ "/home" ] } >
42
+ < Routes >
43
+ < Route path = "/home" element = { < Home /> } />
44
+ </ Routes >
45
+ </ MemoryRouter >
46
+ ) ;
47
+ } ) ;
48
+
49
+ expect ( renderer . toJSON ( ) ) . toMatchInlineSnapshot ( `
50
+ <div>
51
+ no outlet
52
+ </div>
53
+ ` ) ;
54
+ } ) ;
55
+
56
+ it ( "renders the fallback with context provided" , ( ) => {
57
+ function Home ( ) {
58
+ let outlet = useOutlet ( { some : "context" } ) ;
59
+ return < div > { outlet ? "outlet" : "no outlet" } </ div > ;
60
+ }
61
+
62
+ let renderer : TestRenderer . ReactTestRenderer ;
63
+ TestRenderer . act ( ( ) => {
64
+ renderer = TestRenderer . create (
65
+ < MemoryRouter initialEntries = { [ "/home" ] } >
66
+ < Routes >
67
+ < Route path = "/home" element = { < Home /> } />
68
+ </ Routes >
69
+ </ MemoryRouter >
70
+ ) ;
71
+ } ) ;
72
+
73
+ expect ( renderer . toJSON ( ) ) . toMatchInlineSnapshot ( `
74
+ <div>
75
+ no outlet
76
+ </div>
77
+ ` ) ;
78
+ } ) ;
31
79
} ) ;
32
80
33
81
describe ( "when there is a child route" , ( ) => {
@@ -55,9 +103,61 @@ describe("useOutlet", () => {
55
103
</h1>
56
104
` ) ;
57
105
} ) ;
106
+
107
+ it ( "returns an element when no context" , ( ) => {
108
+ function Home ( ) {
109
+ let outlet = useOutlet ( ) ;
110
+ return < div > { outlet ? "outlet" : "no outlet" } </ div > ;
111
+ }
112
+
113
+ let renderer : TestRenderer . ReactTestRenderer ;
114
+ TestRenderer . act ( ( ) => {
115
+ renderer = TestRenderer . create (
116
+ < MemoryRouter initialEntries = { [ "/home" ] } >
117
+ < Routes >
118
+ < Route path = "/home" element = { < Home /> } >
119
+ < Route index element = { < div > index</ div > } />
120
+ </ Route >
121
+ </ Routes >
122
+ </ MemoryRouter >
123
+ ) ;
124
+ } ) ;
125
+
126
+ expect ( renderer . toJSON ( ) ) . toMatchInlineSnapshot ( `
127
+ <div>
128
+ outlet
129
+ </div>
130
+ ` ) ;
131
+ } ) ;
132
+
133
+ it ( "returns an element when context" , ( ) => {
134
+ function Home ( ) {
135
+ let outlet = useOutlet ( { some : "context" } ) ;
136
+ return < div > { outlet ? "outlet" : "no outlet" } </ div > ;
137
+ }
138
+
139
+ let renderer : TestRenderer . ReactTestRenderer ;
140
+ TestRenderer . act ( ( ) => {
141
+ renderer = TestRenderer . create (
142
+ < MemoryRouter initialEntries = { [ "/home" ] } >
143
+ < Routes >
144
+ < Route path = "/home" element = { < Home /> } >
145
+ < Route index element = { < div > index</ div > } />
146
+ </ Route >
147
+ </ Routes >
148
+ </ MemoryRouter >
149
+ ) ;
150
+ } ) ;
151
+
152
+ expect ( renderer . toJSON ( ) ) . toMatchInlineSnapshot ( `
153
+ <div>
154
+ outlet
155
+ </div>
156
+ ` ) ;
157
+ } ) ;
58
158
} ) ;
59
159
60
- describe ( "when there is no context" , ( ) => {
160
+ describe ( "OutletContext when there is no context" , ( ) => {
61
161
it ( "returns null" , ( ) => {
62
162
function Users ( ) {
63
163
return useOutlet ( ) ;
@@ -98,7 +198,7 @@ describe("useOutlet", () => {
98
198
} ) ;
99
199
} ) ;
100
200
101
- describe ( "when there is context" , ( ) => {
201
+ describe ( "OutletContext when there is context" , ( ) => {
102
202
it ( "returns the context" , ( ) => {
103
203
function Users ( ) {
104
204
return useOutlet ( [
0 commit comments