1+ import { describe , it , expect , vi } from 'vitest' ;
2+
3+ import { getPlatformNewline , formatGitHubText } from './github.js' ;
4+
5+ describe ( 'GitHub utilities' , ( ) => {
6+ describe ( 'getPlatformNewline' , ( ) => {
7+ it ( 'should return \\n for non-Windows platforms' , ( ) => {
8+ // Mock process.platform to be 'darwin'
9+ vi . stubGlobal ( 'process' , { ...process , platform : 'darwin' } ) ;
10+ expect ( getPlatformNewline ( ) ) . toBe ( '\\n' ) ;
11+
12+ // Mock process.platform to be 'linux'
13+ vi . stubGlobal ( 'process' , { ...process , platform : 'linux' } ) ;
14+ expect ( getPlatformNewline ( ) ) . toBe ( '\\n' ) ;
15+ } ) ;
16+
17+ it ( 'should return \\r\\n for Windows platform' , ( ) => {
18+ // Mock process.platform to be 'win32'
19+ vi . stubGlobal ( 'process' , { ...process , platform : 'win32' } ) ;
20+ expect ( getPlatformNewline ( ) ) . toBe ( '\\r\\n' ) ;
21+ } ) ;
22+ } ) ;
23+
24+ describe ( 'formatGitHubText' , ( ) => {
25+ it ( 'should replace newlines with platform-specific escape sequences' , ( ) => {
26+ // Mock process.platform to be 'darwin'
27+ vi . stubGlobal ( 'process' , { ...process , platform : 'darwin' } ) ;
28+
29+ const input = 'Hello\nWorld\nThis is a test' ;
30+ const expected = 'Hello\\nWorld\\nThis is a test' ;
31+
32+ expect ( formatGitHubText ( input ) ) . toBe ( expected ) ;
33+ } ) ;
34+
35+ it ( 'should handle Windows newlines correctly' , ( ) => {
36+ // Mock process.platform to be 'win32'
37+ vi . stubGlobal ( 'process' , { ...process , platform : 'win32' } ) ;
38+
39+ const input = 'Hello\nWorld\nThis is a test' ;
40+ const expected = 'Hello\\r\\nWorld\\r\\nThis is a test' ;
41+
42+ expect ( formatGitHubText ( input ) ) . toBe ( expected ) ;
43+ } ) ;
44+ } ) ;
45+ } ) ;
0 commit comments