49 lines
1.6 KiB
JavaScript
49 lines
1.6 KiB
JavaScript
'use strict';
|
|
|
|
// This script depends on the following scripts:
|
|
// resources/test-helpers.js
|
|
// resources/collecting-file-system-observer.js
|
|
// script-tests/FileSystemObserver-writable-file-stream.js
|
|
|
|
directory_test(async (t, root_dir) => {
|
|
const file = await root_dir.getFileHandle(getUniqueName(), {create: true});
|
|
|
|
const observer = new CollectingFileSystemObserver(t, root_dir);
|
|
await observer.observe([file]);
|
|
|
|
// Write to `file` through a `FileSystemWritableFileStream`.
|
|
const writable = await createWFSWithCleanup(t, file);
|
|
await writable.write('contents');
|
|
await writable.close();
|
|
|
|
// Expect one "modified" event to happen on `file`.
|
|
const records = await observer.getRecords();
|
|
await assert_records_equal(file, records, [modifiedEvent(file, [])]);
|
|
}, 'Closing a FileSystemWritableFileStream that\'s modified the file produces a "modified" event');
|
|
|
|
directory_test(async (t, root_dir) => {
|
|
const file = await root_dir.getFileHandle(getUniqueName(), {create: true});
|
|
|
|
const observer = new CollectingFileSystemObserver(t, root_dir);
|
|
await observer.observe([file]);
|
|
|
|
// Write to `file`.
|
|
const writable = await createWFSWithCleanup(t, file);
|
|
await writable.write('contents');
|
|
await writable.truncate(1);
|
|
await writable.seek(1);
|
|
|
|
{
|
|
// Expect no events to happen.
|
|
const records = await observer.getRecords();
|
|
await assert_records_equal(file, records, []);
|
|
}
|
|
|
|
await writable.abort();
|
|
|
|
{
|
|
// Expect no events to happen.
|
|
const records = await observer.getRecords();
|
|
await assert_records_equal(file, records, []);
|
|
}
|
|
}, 'All FileSystemWritableFileStream methods that aren\'t closed don\'t produce events');
|