@@ -44,15 +44,50 @@ func TestFSNotifyWatcher(t *testing.T) {
44
44
require .NoError (t , err , "next event failed" )
45
45
46
46
require .NotNil (t , event , "want non-nil event" )
47
- if event . Has ( fsnotify . Chmod ) && ! event .Has (fsnotify .Write ) {
48
- // Ignore plain chmod events.
47
+ if ! event .Has (fsnotify .Write ) {
48
+ t . Logf ( "Ignoring event: %s" , event )
49
49
continue
50
50
}
51
51
require .Truef (t , event .Has (fsnotify .Write ), "want write event: %s" , event .String ())
52
52
require .Equal (t , event .Name , testFile , "want event for test file" )
53
53
break
54
54
}
55
55
56
+ // Rename the test file to trigger a rename event.
57
+ err = os .Rename (testFile , testFile + ".bak" )
58
+ require .NoError (t , err , "rename test file failed" )
59
+
60
+ // Verify that we receive the event we want.
61
+ for {
62
+ event , err := wut .Next (ctx )
63
+ require .NoError (t , err , "next event failed" )
64
+ require .NotNil (t , event , "want non-nil event" )
65
+ if ! event .Has (fsnotify .Rename ) {
66
+ t .Logf ("Ignoring event: %s" , event )
67
+ continue
68
+ }
69
+ require .Truef (t , event .Has (fsnotify .Rename ), "want rename event: %s" , event .String ())
70
+ require .Equal (t , event .Name , testFile , "want event for test file" )
71
+ break
72
+ }
73
+
74
+ err = os .WriteFile (testFile , []byte (`{"test": "new"}` ), 0o600 )
75
+ require .NoError (t , err , "write new test file failed" )
76
+
77
+ // Verify that we receive the event we want.
78
+ for {
79
+ event , err := wut .Next (ctx )
80
+ require .NoError (t , err , "next event failed" )
81
+ require .NotNil (t , event , "want non-nil event" )
82
+ if ! event .Has (fsnotify .Create ) {
83
+ t .Logf ("Ignoring event: %s" , event )
84
+ continue
85
+ }
86
+ require .Truef (t , event .Has (fsnotify .Create ), "want create event: %s" , event .String ())
87
+ require .Equal (t , event .Name , testFile , "want event for test file" )
88
+ break
89
+ }
90
+
56
91
// Test removing the file from the watcher.
57
92
err = wut .Remove (testFile )
58
93
require .NoError (t , err , "remove file from watcher failed" )
0 commit comments