diff --git a/packages-node/providence-analytics/src/program/utils/fs-adapter.js b/packages-node/providence-analytics/src/program/utils/fs-adapter.js new file mode 100644 index 000000000..d0c2a1268 --- /dev/null +++ b/packages-node/providence-analytics/src/program/utils/fs-adapter.js @@ -0,0 +1,27 @@ +import originalNodeFs from 'fs'; + +/** + * Provides access to the file system (fs) which can be the real file system or a mock. + */ +class FsAdapter { + constructor() { + this.fs = originalNodeFs; + } + + /** + * Call this for mocking or compatibility with non-node environments. + * @param {originalNodeFs} fs + */ + setFs(fs) { + this.fs = fs; + } + + /** + * When done testing, call this to restore the real file system. + */ + restoreFs() { + this.fs = originalNodeFs; + } +} + +export const fsAdapter = new FsAdapter();