aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/scripts/migrations/035.js28
-rw-r--r--test/unit/migrations/035-test.js96
2 files changed, 124 insertions, 0 deletions
diff --git a/app/scripts/migrations/035.js b/app/scripts/migrations/035.js
new file mode 100644
index 000000000..02b01f588
--- /dev/null
+++ b/app/scripts/migrations/035.js
@@ -0,0 +1,28 @@
+// next version number
+const version = 35
+
+/*
+
+Removes the deprecated 'seedWords' state
+
+*/
+
+const clone = require('clone')
+
+module.exports = {
+ version,
+
+ migrate: async function (originalVersionedData) {
+ const versionedData = clone(originalVersionedData)
+ versionedData.meta.version = version
+ versionedData.data = transformState(versionedData.data)
+ return versionedData
+ },
+}
+
+function transformState (state) {
+ if (state.PreferencesController && state.PreferencesController.seedWords !== undefined) {
+ delete state.PreferencesController.seedWords
+ }
+ return state
+}
diff --git a/test/unit/migrations/035-test.js b/test/unit/migrations/035-test.js
new file mode 100644
index 000000000..a6ab09864
--- /dev/null
+++ b/test/unit/migrations/035-test.js
@@ -0,0 +1,96 @@
+const assert = require('assert')
+const migration35 = require('../../../app/scripts/migrations/035')
+
+describe('migration #35', () => {
+ it('should update the version metadata', (done) => {
+ const oldStorage = {
+ meta: {
+ version: 34,
+ },
+ data: {},
+ }
+
+ migration35.migrate(oldStorage)
+ .then((newStorage) => {
+ assert.deepEqual(newStorage.meta, {
+ 'version': 35,
+ })
+ done()
+ })
+ .catch(done)
+ })
+
+ it('should delete seedWords', (done) => {
+ const oldStorage = {
+ meta: {},
+ data: {
+ PreferencesController: {
+ seedWords: 'seed words',
+ },
+ },
+ }
+
+ migration35.migrate(oldStorage)
+ .then((newStorage) => {
+ assert.deepEqual(newStorage.data.PreferencesController, {})
+ done()
+ })
+ .catch(done)
+ })
+
+ it('should delete falsy seedWords', (done) => {
+ const oldStorage = {
+ meta: {},
+ data: {
+ PreferencesController: {
+ seedWords: '',
+ },
+ },
+ }
+
+ migration35.migrate(oldStorage)
+ .then((newStorage) => {
+ assert.deepEqual(newStorage.data.PreferencesController, {})
+ done()
+ })
+ .catch(done)
+ })
+
+ it('should leave state without seedWords unchanged', (done) => {
+ const oldStorage = {
+ meta: {},
+ data: {
+ PreferencesController: {
+ frequentRpcListDetail: [],
+ currentAccountTab: 'history',
+ accountTokens: {},
+ assetImages: {},
+ tokens: [],
+ suggestedTokens: {},
+ useBlockie: false,
+ knownMethodData: {},
+ participateInMetaMetrics: null,
+ firstTimeFlowType: null,
+ currentLocale: 'en',
+ identities: {},
+ lostIdentities: {},
+ forgottenPassword: false,
+ preferences: {
+ useNativeCurrencyAsPrimaryCurrency: true,
+ },
+ completedOnboarding: false,
+ migratedPrivacyMode: false,
+ metaMetricsId: null,
+ metaMetricsSendCount: 0,
+ },
+ },
+ }
+
+ migration35.migrate(oldStorage)
+ .then((newStorage) => {
+ assert.deepEqual(newStorage.data, oldStorage.data)
+ done()
+ })
+ .catch(done)
+ })
+})