@@ -48,8 +48,7 @@ import {XIcon} from '@primer/octicons-react'
48
48
export default function App() {
49
49
return <Octicon icon={XIcon} />
50
50
}` ,
51
- output : `import {Octicon} from '@primer/react/deprecated'
52
- import {XIcon} from '@primer/octicons-react'
51
+ output : `import {XIcon} from '@primer/octicons-react'
53
52
export default function App() {
54
53
return <XIcon />
55
54
}` ,
@@ -67,8 +66,7 @@ import {XIcon} from '@primer/octicons-react'
67
66
export default function App() {
68
67
return <Octicon icon={XIcon} size={16} className="test" />
69
68
}` ,
70
- output : `import {Octicon} from '@primer/react/deprecated'
71
- import {XIcon} from '@primer/octicons-react'
69
+ output : `import {XIcon} from '@primer/octicons-react'
72
70
export default function App() {
73
71
return <XIcon size={16} className="test" />
74
72
}` ,
@@ -87,8 +85,7 @@ export default function App() {
87
85
const props = { size: 16 }
88
86
return <Octicon {...props} icon={XIcon} className="test" />
89
87
}` ,
90
- output : `import {Octicon} from '@primer/react/deprecated'
91
- import {XIcon} from '@primer/octicons-react'
88
+ output : `import {XIcon} from '@primer/octicons-react'
92
89
export default function App() {
93
90
const props = { size: 16 }
94
91
return <XIcon {...props} className="test" />
@@ -109,8 +106,7 @@ export default function App() {
109
106
<span>Content</span>
110
107
</Octicon>
111
108
}` ,
112
- output : `import {Octicon} from '@primer/react/deprecated'
113
- import {XIcon} from '@primer/octicons-react'
109
+ output : `import {XIcon} from '@primer/octicons-react'
114
110
export default function App() {
115
111
return <XIcon>
116
112
<span>Content</span>
@@ -135,8 +131,7 @@ export default function App() {
135
131
</div>
136
132
)
137
133
}` ,
138
- output : `import {Octicon} from '@primer/react/deprecated'
139
- import {XIcon, CheckIcon} from '@primer/octicons-react'
134
+ output : `import {XIcon, CheckIcon} from '@primer/octicons-react'
140
135
export default function App() {
141
136
return (
142
137
<div>
@@ -162,8 +157,7 @@ import {XIcon, CheckIcon} from '@primer/octicons-react'
162
157
export default function App() {
163
158
return <Octicon icon={condition ? XIcon : CheckIcon} />
164
159
}` ,
165
- output : `import {Octicon} from '@primer/react/deprecated'
166
- import {XIcon, CheckIcon} from '@primer/octicons-react'
160
+ output : `import {XIcon, CheckIcon} from '@primer/octicons-react'
167
161
export default function App() {
168
162
return condition ? <XIcon /> : <CheckIcon />
169
163
}` ,
@@ -181,8 +175,7 @@ import {XIcon, CheckIcon} from '@primer/octicons-react'
181
175
export default function App() {
182
176
return <Octicon icon={condition ? XIcon : CheckIcon} size={16} className="test" />
183
177
}` ,
184
- output : `import {Octicon} from '@primer/react/deprecated'
185
- import {XIcon, CheckIcon} from '@primer/octicons-react'
178
+ output : `import {XIcon, CheckIcon} from '@primer/octicons-react'
186
179
export default function App() {
187
180
return condition ? <XIcon size={16} className="test" /> : <CheckIcon size={16} className="test" />
188
181
}` ,
@@ -200,8 +193,7 @@ export default function App() {
200
193
const icons = { x: XIcon }
201
194
return <Octicon icon={icons.x} />
202
195
}` ,
203
- output : `import {Octicon} from '@primer/react/deprecated'
204
- export default function App() {
196
+ output : `export default function App() {
205
197
const icons = { x: XIcon }
206
198
return React.createElement(icons.x, {})
207
199
}` ,
@@ -219,10 +211,65 @@ export default function App() {
219
211
const icons = { x: XIcon }
220
212
return <Octicon icon={icons.x} size={16} className="btn-icon" />
221
213
}` ,
222
- output : `import {Octicon} from '@primer/react/deprecated'
223
- export default function App() {
214
+ output : `export default function App() {
224
215
const icons = { x: XIcon }
225
216
return React.createElement(icons.x, {size: 16, className: "btn-icon"})
217
+ }` ,
218
+ errors : [
219
+ {
220
+ messageId : 'replaceDeprecatedOcticon' ,
221
+ } ,
222
+ ] ,
223
+ } ,
224
+
225
+ // Test import removal - single Octicon import gets removed
226
+ {
227
+ code : `import {Octicon} from '@primer/react/deprecated'
228
+ import {XIcon} from '@primer/octicons-react'
229
+ export default function App() {
230
+ return <Octicon icon={XIcon} />
231
+ }` ,
232
+ output : `import {XIcon} from '@primer/octicons-react'
233
+ export default function App() {
234
+ return <XIcon />
235
+ }` ,
236
+ errors : [
237
+ {
238
+ messageId : 'replaceDeprecatedOcticon' ,
239
+ } ,
240
+ ] ,
241
+ } ,
242
+
243
+ // Test partial import removal - Octicon removed but other imports remain
244
+ {
245
+ code : `import {Octicon, Button} from '@primer/react/deprecated'
246
+ import {XIcon} from '@primer/octicons-react'
247
+ export default function App() {
248
+ return <Octicon icon={XIcon} />
249
+ }` ,
250
+ output : `import {Button} from '@primer/react/deprecated'
251
+ import {XIcon} from '@primer/octicons-react'
252
+ export default function App() {
253
+ return <XIcon />
254
+ }` ,
255
+ errors : [
256
+ {
257
+ messageId : 'replaceDeprecatedOcticon' ,
258
+ } ,
259
+ ] ,
260
+ } ,
261
+
262
+ // Test partial import removal - Octicon in middle of import list
263
+ {
264
+ code : `import {Button, Octicon, TextField} from '@primer/react/deprecated'
265
+ import {XIcon} from '@primer/octicons-react'
266
+ export default function App() {
267
+ return <Octicon icon={XIcon} />
268
+ }` ,
269
+ output : `import {Button, TextField} from '@primer/react/deprecated'
270
+ import {XIcon} from '@primer/octicons-react'
271
+ export default function App() {
272
+ return <XIcon />
226
273
}` ,
227
274
errors : [
228
275
{
0 commit comments