• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1import { paramMock } from "./utils"
2
3export function mockDataStorage() {
4  global.systemplugin.data = {}
5  const paramValueTypeMock = '[PC Preview] unknow ValueType'
6  const storageObserverMock = {
7    key: "[PC preview] unknow key"
8  }
9  const storageMock = {
10    getSync: function () {
11      console.warn("Storage.getSync interface mocked in the Previewer. How this interface works on the Previewer may" +
12        " be different from that on a real device.")
13      return paramValueTypeMock
14    },
15    get: function (...args) {
16      console.warn("Storage.get interface mocked in the Previewer. How this interface works on the Previewer may be" +
17        " different from that on a real device.")
18      const len = args.length
19      if (typeof args[len - 1] === 'function') {
20        args[len - 1].call(this, paramMock.businessErrorMock, paramValueTypeMock)
21      } else {
22        return new Promise((resolve) => {
23          resolve(paramValueTypeMock)
24        })
25      }
26    },
27    hasSync: function () {
28      console.warn("Storage.hasSync interface mocked in the Previewer. How this interface works on the Previewer may" +
29        " be different from that on a real device.")
30      return paramMock.paramBooleanMock
31    },
32    has: function (...args) {
33      console.warn("Storage.has interface mocked in the Previewer. How this interface works on the Previewer may be" +
34        " different from that on a real device.")
35      const len = args.length
36      if (typeof args[len - 1] === 'function') {
37        args[len - 1].call(this, paramMock.businessErrorMock, paramMock.paramBooleanMock)
38      } else {
39        return new Promise((resolve) => {
40          resolve(paramMock.paramBooleanMock)
41        })
42      }
43    },
44    putSync: function () {
45      console.warn("Storage.putSync interface mocked in the Previewer. How this interface works on the Previewer may" +
46        " be different from that on a real device.")
47    },
48    put: function (...args) {
49      console.warn("Storage.put interface mocked in the Previewer. How this interface works on the Previewer may be" +
50        " different from that on a real device.")
51      const len = args.length
52      if (typeof args[len - 1] === 'function') {
53        args[len - 1].call(this, paramMock.businessErrorMock)
54      } else {
55        return new Promise((resolve) => {
56          resolve()
57        })
58      }
59    },
60    deleteSync: function () {
61      console.warn("Storage.deleteSync interface mocked in the Previewer. How this interface works on the Previewer" +
62        " may be different from that on a real device.")
63      return
64    },
65    delete: function (...args) {
66      console.warn("Storage.delete interface mocked in the Previewer. How this interface works on the Previewer may" +
67        " be different from that on a real device.")
68      const len = args.length
69      if (typeof args[len - 1] === 'function') {
70        args[len - 1].call(this, paramMock.businessErrorMock)
71      } else {
72        return new Promise((resolve) => {
73          resolve()
74        })
75      }
76    },
77    clearSync: function () {
78      console.warn("Storage.clearSync interface mocked in the Previewer. How this interface works on the Previewer" +
79        " may be different from that on a real device.")
80    },
81    clear: function (...args) {
82      console.warn("Storage.clear interface mocked in the Previewer. How this interface works on the Previewer may" +
83        " be different from that on a real device.")
84      const len = args.length
85      if (typeof args[len - 1] === 'function') {
86        args[len - 1].call(this, paramMock.businessErrorMock)
87      } else {
88        return new Promise((resolve) => {
89          resolve()
90        })
91      }
92    },
93    flushSync: function () {
94      console.warn("Storage.flushSync interface mocked in the Previewer. How this interface works on the Previewer" +
95        " may be different from that on a real device.")
96    },
97    flush: function (...args) {
98      console.warn("Storage.flush interface mocked in the Previewer. How this interface works on the Previewer may" +
99        " be different from that on a real device.")
100      const len = args.length
101      if (typeof args[len - 1] === 'function') {
102        args[len - 1].call(this, paramMock.businessErrorMock)
103      } else {
104        return new Promise((resolve) => {
105          resolve()
106        })
107      }
108    },
109    on: function (...args) {
110      console.warn("Storage.on interface mocked in the Previewer. How this interface works on the Previewer may be" +
111        " different from that on a real device.")
112      const len = args.length
113      args[len - 1].call(this, storageObserverMock)
114    },
115    off: function (...args) {
116      console.warn("Storage.off interface mocked in the Previewer. How this interface works on the Previewer may be" +
117        " different from that on a real device.")
118      const len = args.length
119      args[len - 1].call(this, storageObserverMock)
120    }
121  }
122  global.systemplugin.data.storage = {
123    getStorageSync: function () {
124      console.warn("data.storage.getStorageSync interface mocked in the Previewer. How this interface works on the" +
125        " Previewer may be different from that on a real device.")
126      return storageMock
127    },
128    getStorage: function (...args) {
129      console.warn("data.storage.getStorage interface mocked in the Previewer. How this interface works on the" +
130        " Previewer may be different from that on a real device.")
131      const len = args.length
132      if (typeof args[len - 1] === 'function') {
133        args[len - 1].call(this, paramMock.businessErrorMock, storageMock)
134      } else {
135        return new Promise((resolve) => {
136          resolve(storageMock)
137        })
138      }
139    },
140    deleteStorageSync: function () {
141      console.warn("data.storage.deleteStorageSync interface mocked in the Previewer. How this interface works on" +
142        " the Previewer may be different from that on a real device.")
143    },
144    deleteStorage: function (...args) {
145      console.warn("data.storage.deleteStorage interface mocked in the Previewer. How this interface works on the" +
146        " Previewer may be different from that on a real device.")
147      const len = args.length
148      if (typeof args[len - 1] === 'function') {
149        args[len - 1].call(this, paramMock.businessErrorMock)
150      } else {
151        return new Promise((resolve) => {
152          resolve()
153        })
154      }
155    },
156    removeStorageFromCacheSync: function () {
157      console.warn("data.storage.removeStorageFromCacheSync interface mocked in the Previewer. How this interface" +
158        " works on the Previewer may be different from that on a real device.")
159    },
160    removeStorageFromCache: function (...args) {
161      console.warn("data.storage.removeStorageFromCache interface mocked in the Previewer. How this interface works" +
162        " on the Previewer may be different from that on a real device.")
163      const len = args.length
164      if (typeof args[len - 1] === 'function') {
165        args[len - 1].call(this, paramMock.businessErrorMock)
166      } else {
167        return new Promise((resolve) => {
168          resolve()
169        })
170      }
171    }
172  }
173}