Skip to content

Commit e65be7a

Browse files
remove unneeded metadata-version check (#1746)
* remove unused metadata check * fix test case
1 parent c8a9056 commit e65be7a

File tree

10 files changed

+42
-189
lines changed

10 files changed

+42
-189
lines changed

src/shared/modules/currentUser/currentUserDuck.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import { DB_META_DONE, SYSTEM_DB } from '../dbMeta/constants'
2121
import {
2222
FIRST_MULTI_DB_SUPPORT,
2323
FIRST_NO_MULTI_DB_SUPPORT,
24-
canSendTxMetadata,
2524
getShowCurrentUserProcedure
2625
} from '../features/versionedFeatures'
2726
import bolt from 'services/bolt/bolt'
@@ -31,7 +30,7 @@ import {
3130
DISCONNECTION_SUCCESS,
3231
getAuthEnabled
3332
} from 'shared/modules/connections/connectionsDuck'
34-
import { getBackgroundTxMetadata } from 'shared/services/bolt/txMetadata'
33+
import { backgroundTxMetadata } from 'shared/services/bolt/txMetadata'
3534

3635
export const NAME = 'user'
3736
export const UPDATE_CURRENT_USER = `${NAME}/UPDATE_CURRENT_USER`
@@ -104,9 +103,7 @@ export const getCurrentUserEpic = (some$: any, store: any) =>
104103
),
105104
{},
106105
{
107-
...getBackgroundTxMetadata({
108-
hasServerSupport: canSendTxMetadata(store.getState())
109-
}),
106+
...backgroundTxMetadata,
110107
useDb: supportsMultiDb ? SYSTEM_DB : ''
111108
}
112109
)

src/shared/modules/cypher/cypherDuck.ts

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ import { getVersion } from '../dbMeta/state'
2626
import {
2727
FIRST_MULTI_DB_SUPPORT,
2828
FIRST_NO_MULTI_DB_SUPPORT,
29-
canSendTxMetadata,
3029
changeUserPasswordQuery,
3130
driverDatabaseSelection
3231
} from '../features/versionedFeatures'
@@ -105,14 +104,12 @@ const callClusterMember = async (connection: any, action: any) => {
105104
}
106105

107106
// Epics
108-
export const cypherRequestEpic = (some$: any, store: any) =>
107+
export const cypherRequestEpic = (some$: any) =>
109108
some$.ofType(CYPHER_REQUEST).mergeMap((action: any) => {
110109
if (!action.$$responseChannel) return Rx.Observable.of(null)
111110
return bolt
112111
.directTransaction(action.query, action.params || undefined, {
113-
...getUserTxMetadata(action.queryType || null)({
114-
hasServerSupport: canSendTxMetadata(store.getState())
115-
}),
112+
...getUserTxMetadata(action.queryType),
116113
useDb: action.useDb
117114
})
118115
.then((r: any) => ({
@@ -127,17 +124,15 @@ export const cypherRequestEpic = (some$: any, store: any) =>
127124
}))
128125
})
129126

130-
export const routedCypherRequestEpic = (some$: any, store: any) =>
127+
export const routedCypherRequestEpic = (some$: any) =>
131128
some$.ofType(ROUTED_CYPHER_WRITE_REQUEST).mergeMap((action: any) => {
132129
if (!action.$$responseChannel) return Rx.Observable.of(null)
133130

134131
const [_id, promise] = bolt.routedWriteTransaction(
135132
action.query,
136133
action.params,
137134
{
138-
...getUserTxMetadata(action.queryType || null)({
139-
hasServerSupport: canSendTxMetadata(store.getState())
140-
}),
135+
...getUserTxMetadata(action.queryType || null),
141136
cancelable: true,
142137
useDb: action.useDb
143138
}

src/shared/modules/cypher/cypherRequestEpic.test.ts

Lines changed: 6 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,9 @@ import { createBus, createReduxMiddleware } from 'suber'
2323

2424
import { CYPHER_REQUEST, cypherRequestEpic } from './cypherDuck'
2525
import {
26+
getUserTxMetadata,
2627
NEO4J_BROWSER_USER_QUERY,
27-
getUserDirectTxMetadata
28+
userDirectTxMetadata
2829
} from 'services/bolt/txMetadata'
2930

3031
jest.mock('services/bolt/bolt', () => {
@@ -67,50 +68,15 @@ describe('cypherRequestEpic', () => {
6768
$$responseChannel: 'test-1'
6869
}
6970

70-
const p = new Promise((resolve, reject) => {
71+
const p = new Promise<void>((resolve, reject) => {
7172
bus.take(action.$$responseChannel, () => {
7273
// Then
7374
try {
7475
expect(bolt.directTransaction).toHaveBeenCalledTimes(1)
7576
expect(bolt.directTransaction).toHaveBeenCalledWith(
7677
action.query,
7778
undefined,
78-
getUserDirectTxMetadata({ hasServerSupport: true })
79-
)
80-
resolve()
81-
} catch (e) {
82-
reject(e)
83-
}
84-
})
85-
})
86-
87-
// When
88-
store.dispatch(action)
89-
90-
// Return
91-
return p
92-
})
93-
test('cypherRequestEpic does NOT pass along tx metadata if no server support', () => {
94-
// Given
95-
bolt.directTransaction.mockClear()
96-
dbMeta.getVersion.mockImplementation(() => '1.0.0') // No tx metadata support
97-
98-
const action = {
99-
type: CYPHER_REQUEST,
100-
query: 'RETURN 1',
101-
queryType: NEO4J_BROWSER_USER_QUERY,
102-
$$responseChannel: 'test-1'
103-
}
104-
105-
const p = new Promise((resolve, reject) => {
106-
bus.take(action.$$responseChannel, () => {
107-
// Then
108-
try {
109-
expect(bolt.directTransaction).toHaveBeenCalledTimes(1)
110-
expect(bolt.directTransaction).toHaveBeenCalledWith(
111-
action.query,
112-
undefined,
113-
{}
79+
userDirectTxMetadata
11480
)
11581
resolve()
11682
} catch (e) {
@@ -137,15 +103,15 @@ describe('cypherRequestEpic', () => {
137103
$$responseChannel: 'test-1'
138104
}
139105

140-
const p = new Promise((resolve, reject) => {
106+
const p = new Promise<void>((resolve, reject) => {
141107
bus.take(action.$$responseChannel, () => {
142108
// Then
143109
try {
144110
expect(bolt.directTransaction).toHaveBeenCalledTimes(1)
145111
expect(bolt.directTransaction).toHaveBeenCalledWith(
146112
action.query,
147113
undefined,
148-
{}
114+
getUserTxMetadata()
149115
)
150116
resolve()
151117
} catch (e) {

src/shared/modules/dbMeta/epics.ts

Lines changed: 8 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,7 @@ import {
2727
setClientConfig,
2828
updateUserCapability
2929
} from '../features/featuresDuck'
30-
import {
31-
canSendTxMetadata,
32-
getDbClusterRole
33-
} from '../features/versionedFeatures'
30+
import { getDbClusterRole } from '../features/versionedFeatures'
3431
import { update, updateMeta, updateServerInfo, updateSettings } from './actions'
3532
import {
3633
CLEAR_META,
@@ -70,7 +67,7 @@ import {
7067
useDb
7168
} from 'shared/modules/connections/connectionsDuck'
7269
import { clearHistory } from 'shared/modules/history/historyDuck'
73-
import { getBackgroundTxMetadata } from 'shared/services/bolt/txMetadata'
70+
import { backgroundTxMetadata } from 'shared/services/bolt/txMetadata'
7471
import { isOnCausalCluster } from 'shared/utils/selectors'
7572

7673
const databaseList = (store: any) =>
@@ -86,9 +83,7 @@ const databaseList = (store: any) =>
8683
'SHOW DATABASES',
8784
{},
8885
{
89-
...getBackgroundTxMetadata({
90-
hasServerSupport: canSendTxMetadata(store.getState())
91-
}),
86+
...backgroundTxMetadata,
9287
useDb: SYSTEM_DB
9388
}
9489
)
@@ -134,9 +129,7 @@ const getLabelsAndTypes = (store: any) =>
134129
{},
135130
{
136131
onLostConnection: onLostConnection(store.dispatch),
137-
...getBackgroundTxMetadata({
138-
hasServerSupport: canSendTxMetadata(store.getState())
139-
})
132+
...backgroundTxMetadata
140133
}
141134
)
142135
)
@@ -163,9 +156,7 @@ const clusterRole = (store: any) =>
163156
getDbClusterRole(store.getState()),
164157
{},
165158
{
166-
...getBackgroundTxMetadata({
167-
hasServerSupport: canSendTxMetadata(store.getState())
168-
})
159+
...backgroundTxMetadata
169160
}
170161
)
171162
.then(resolve)
@@ -301,9 +292,7 @@ export const serverConfigEpic = (some$: any, store: any) =>
301292
{},
302293
{
303294
useDb: supportsMultiDb ? SYSTEM_DB : '',
304-
...getBackgroundTxMetadata({
305-
hasServerSupport: canSendTxMetadata(store.getState())
306-
})
295+
...backgroundTxMetadata
307296
}
308297
)
309298
.then((r: any) => {
@@ -325,9 +314,7 @@ export const serverConfigEpic = (some$: any, store: any) =>
325314
{},
326315
{
327316
useDb: supportsMultiDb ? SYSTEM_DB : '',
328-
...getBackgroundTxMetadata({
329-
hasServerSupport: canSendTxMetadata(store.getState())
330-
})
317+
...backgroundTxMetadata
331318
}
332319
)
333320
.then(resolve)
@@ -409,9 +396,7 @@ export const serverInfoEpic = (some$: any, store: any) =>
409396
query,
410397
{},
411398
{
412-
...getBackgroundTxMetadata({
413-
hasServerSupport: canSendTxMetadata(store.getState())
414-
})
399+
...backgroundTxMetadata
415400
}
416401
)
417402
)

src/shared/modules/features/featuresDuck.test.ts

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,7 @@
1717
* You should have received a copy of the GNU General Public License
1818
* along with this program. If not, see <http://www.gnu.org/licenses/>.
1919
*/
20-
import { NAME as META_NAME } from '../dbMeta/state'
2120
import reducer, * as features from './featuresDuck'
22-
import { canSendTxMetadata } from './versionedFeatures'
2321
import { dehydrate } from 'services/duckUtils'
2422

2523
describe('features reducer', () => {
@@ -82,20 +80,3 @@ describe('feature getters', () => {
8280
expect(features.canAssignRolesToUser({ features: nextState })).toBe(true)
8381
})
8482
})
85-
describe('canSendTxMetadata', () => {
86-
// Valid versions that should send
87-
const validSemverVersions = ['3.5.0-alpha02', '3.5.0', '3.6.1', '6.2']
88-
test.each(validSemverVersions)('version %s returns true', version => {
89-
expect(canSendTxMetadata(createVersionState(version))).toEqual(true)
90-
})
91-
92-
// Invalid or old versions that should not send
93-
const invalidSemverVersions = ['dev', null, undefined, '3.4.10']
94-
test.each(invalidSemverVersions)('version %s returns false', version => {
95-
expect(canSendTxMetadata(createVersionState(version))).toEqual(false)
96-
})
97-
})
98-
99-
const createVersionState: any = (version: any) => ({
100-
[META_NAME]: { server: { version } }
101-
})

src/shared/modules/features/featuresDuck.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,13 @@
2020
import Rx from 'rxjs/Rx'
2121

2222
import { SYSTEM_DB } from '../dbMeta/constants'
23-
import { canSendTxMetadata } from '../features/versionedFeatures'
2423
import bolt from 'services/bolt/bolt'
2524
import { APP_START, CLOUD, DESKTOP } from 'shared/modules/app/appDuck'
2625
import {
2726
CONNECTION_SUCCESS,
2827
DISCONNECTION_SUCCESS
2928
} from 'shared/modules/connections/connectionsDuck'
30-
import { getBackgroundTxMetadata } from 'shared/services/bolt/txMetadata'
29+
import { backgroundTxMetadata } from 'shared/services/bolt/txMetadata'
3130

3231
export const NAME = 'features'
3332
const CLEAR = 'features/CLEAR'
@@ -132,9 +131,7 @@ export const featuresDiscoveryEpic = (action$: any, store: any) => {
132131
{},
133132
{
134133
useDb: supportsMultiDb ? SYSTEM_DB : '',
135-
...getBackgroundTxMetadata({
136-
hasServerSupport: canSendTxMetadata(store.getState())
137-
})
134+
...backgroundTxMetadata
138135
}
139136
)
140137
resolve(res)

src/shared/modules/features/versionedFeatures.ts

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,24 +24,13 @@ import { getActiveDbName, getVersion } from '../dbMeta/state'
2424
import { guessSemverVersion } from './featureDuck.utils'
2525
import { GlobalState } from 'project-root/src/shared/globalState'
2626

27-
const NEO4J_TX_METADATA_VERSION = '3.5.0-alpha01'
2827
const NEO4J_4_0 = '4.0.0-alpha01'
2928

3029
export const FIRST_MULTI_DB_SUPPORT = NEO4J_4_0
3130
// Keep the following as 3.4.0 as 3.5.X has a
3231
// compatible bolt server.
3332
export const FIRST_NO_MULTI_DB_SUPPORT = '3.4.0'
3433

35-
export const canSendTxMetadata = (state: GlobalState) => {
36-
const serverVersion = guessSemverVersion(getVersion(state))
37-
38-
if (!serverVersion || !semver.valid(serverVersion)) {
39-
return false
40-
} else {
41-
return semver.gt(serverVersion, NEO4J_TX_METADATA_VERSION)
42-
}
43-
}
44-
4534
export const getShowCurrentUserProcedure = (serverVersion: string) => {
4635
const serverVersionGuessed = guessSemverVersion(serverVersion)
4736

src/shared/services/bolt/txMetaData.test.ts

Lines changed: 0 additions & 37 deletions
This file was deleted.

0 commit comments

Comments
 (0)