@@ -39,7 +39,7 @@ describe("createGitignoreFilter", () => {
3939 expect ( filter ( "file.txt" ) ) . toBe ( true ) ;
4040 expect ( filter ( "build" ) ) . toBe ( false ) ;
4141 expect ( filter ( ".env" ) ) . toBe ( false ) ;
42- expect ( filter ( ".env.local" ) ) . toBe ( false ) ;
42+ expect ( filter ( ".env.local" ) ) . toBe ( true ) ;
4343 } ) ;
4444
4545 it ( "respects negation patterns" , async ( ) => {
@@ -60,17 +60,30 @@ describe("createGitignoreFilter", () => {
6060 expect ( filter ( "root-only.txt" ) ) . toBe ( true ) ;
6161 } ) ;
6262
63- it ( "keeps default hidden and dependency ignores when .gitignore exists" , async ( ) => {
63+ it ( "keeps required repository and dependency ignores when .gitignore exists" , async ( ) => {
6464 await writeFile ( join ( testDir , ".gitignore" ) , "*.log" ) ;
6565
6666 const filter = createGitignoreFilter ( testDir , testDir ) ;
6767
6868 expect ( filter ( ".git" ) ) . toBe ( false ) ;
69- expect ( filter ( ".hidden" ) ) . toBe ( false ) ;
69+ expect ( filter ( ".hidden" ) ) . toBe ( true ) ;
70+ expect ( filter ( ".gitignore" ) ) . toBe ( true ) ;
7071 expect ( filter ( "node_modules" ) ) . toBe ( false ) ;
7172 expect ( filter ( "app.log" ) ) . toBe ( false ) ;
7273 expect ( filter ( "file.txt" ) ) . toBe ( true ) ;
7374 } ) ;
75+
76+ it ( "shows dotfiles when .gitignore does not ignore them" , async ( ) => {
77+ await writeFile ( join ( testDir , ".gitignore" ) , "*.log\n!.env\n!.gitignore" ) ;
78+
79+ const filter = createGitignoreFilter ( testDir , testDir ) ;
80+
81+ expect ( filter ( ".env" ) ) . toBe ( true ) ;
82+ expect ( filter ( ".gitignore" ) ) . toBe ( true ) ;
83+ expect ( filter ( ".hidden" ) ) . toBe ( true ) ;
84+ expect ( filter ( "node_modules" ) ) . toBe ( false ) ;
85+ expect ( filter ( ".git" ) ) . toBe ( false ) ;
86+ } ) ;
7487} ) ;
7588
7689describe ( "createWatcherIgnoreFilter" , ( ) => {
0 commit comments