« index

Coverage for /Users/kris/q-io/spec/fs/mock/write-spec.js : 100%

68 lines | 68 run | 0 missing | 0 partial | 21 blocks | 21 blocks run | 0 blocks missing

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

  "use strict";
  
  require("../../lib/jasmine-promise");
  var Q = require("q");
  var FS = require("../../../fs");
  /*global describe,it,expect */
  
  describe("write", function () {
      it("should write a file to a mock filesystem", function () {
          return FS.mock(FS.join(__dirname, "fixture"))
          .then(function (mock) {
  
              return Q.fcall(function () {
                  return mock.write("hello.txt", "Goodbye!\n");
              })
              .then(function () {
                  return mock.isFile("hello.txt");
              })
              .then(function (isFile) {
                  expect(isFile).toBe(true);
              });
          });
      });
  
      it("takes a flags argument", function () {
          return FS.mock(FS.join(__dirname, "fixture"))
          .then(function (mock) {
              return Q.fcall(function () {
                  return mock.write("hello.txt", "Goodbye!\n", "a");
              })
              .then(function () {
                  return mock.read("hello.txt");
              })
              .then(function (contents) {
                  expect(contents).toBe("Hello, World!\nGoodbye!\n");
              });
          });
      });
  
      it("takes an options object with flags", function () {
          return FS.mock(FS.join(__dirname, "fixture"))
          .then(function (mock) {
              return Q.fcall(function () {
                  return mock.write("hello.txt", "Goodbye!\n", { flags: "a" });
              })
              .then(function () {
                  return mock.read("hello.txt");
              })
              .then(function (contents) {
                  expect(contents).toBe("Hello, World!\nGoodbye!\n");
              });
          });
      });
  
      it("calls open correctly", function () {
          return FS.mock(FS.join(__dirname, "fixture"))
          .then(function (mock) {
              mock.open = function (path, options) {
                  expect(path).toBe("hello.txt");
                  expect(options.flags).toBe("wa");
                  expect(options.charset).toBe("utf8");
                  return Q.resolve({write: function () {}, close: function () {}});
              };
  
              return mock.write("hello.txt", "Goodbye!\n", "a", "utf8");
          });
      });
  });
« index | cover.io