Skip to content

Commit 225a84d

Browse files
committed
refactor mockspanner
1 parent a8738bd commit 225a84d

File tree

2 files changed

+12
-21
lines changed

2 files changed

+12
-21
lines changed

test/mockserver/mockspanner.ts

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -685,8 +685,7 @@ export class MockSpanner {
685685
const fullTransactionId = `${call.request!.session}/transactions/${
686686
call.request!.transaction.id
687687
}`;
688-
// unique key for a transaction
689-
transactionKey = `${call.request!.session}/${call.request!.transaction.id?.toString('hex')}`;
688+
transactionKey = fullTransactionId;
690689
if (this.abortedTransactions.has(fullTransactionId)) {
691690
call.sendMetadata(new Metadata());
692691
call.emit(
@@ -711,9 +710,7 @@ export class MockSpanner {
711710
call.end();
712711
return;
713712
}
714-
715-
// unique key for a transaction
716-
transactionKey = `${call.request!.session}/${txn.id.toString('hex')}`;
713+
transactionKey = `${call.request!.session}/transactions/${txn.id.toString()}`;
717714
if (res.type === StatementResultType.RESULT_SET) {
718715
(res.resultSet as protobuf.ResultSet).metadata!.transaction = txn;
719716
}
@@ -1025,9 +1022,7 @@ export class MockSpanner {
10251022
const fullTransactionId = `${call.request!.session}/transactions/${
10261023
call.request!.transaction.id
10271024
}`;
1028-
1029-
// unique key for a transaction
1030-
transactionKey = `${call.request!.session}/${call.request!.transaction.id?.toString('hex')}`;
1025+
transactionKey = fullTransactionId;
10311026
if (this.abortedTransactions.has(fullTransactionId)) {
10321027
call.sendMetadata(new Metadata());
10331028
call.emit(
@@ -1057,9 +1052,7 @@ export class MockSpanner {
10571052
call.end();
10581053
return;
10591054
}
1060-
1061-
// unique key for a transaction
1062-
transactionKey = `${call.request!.session}/${txn.id.toString('hex')}`;
1055+
transactionKey = `${call.request!.session}/transactions/${txn.id.toString()}`;
10631056
if (res.type === ReadRequestResultType.RESULT_SET) {
10641057
call.sendMetadata(new Metadata());
10651058
(res.resultSet as protobuf.ResultSet).metadata!.transaction = txn;
@@ -1196,8 +1189,7 @@ export class MockSpanner {
11961189
const transaction = this.transactions.get(fullTransactionId);
11971190
if (transaction) {
11981191
// unique transaction key
1199-
const transactionKey = `${call.request.session}/${call.request.transactionId.toString('hex')}`;
1200-
1192+
const transactionKey = `${call.request.session}/transactions/${call.request.transactionId}`;
12011193
// delete the transaction key
12021194
this.transactionSeqNum.delete(transactionKey);
12031195
this.transactions.delete(fullTransactionId);
@@ -1245,7 +1237,7 @@ export class MockSpanner {
12451237
const transaction = this.transactions.get(fullTransactionId);
12461238
if (transaction) {
12471239
// unique transaction key
1248-
const transactionKey = `${call.request.session}/${call.request.transactionId.toString('hex')}`;
1240+
const transactionKey = `${call.request.session}/transactions/${call.request.transactionId}`;
12491241
// delete the key
12501242
this.transactionSeqNum.delete(transactionKey);
12511243
this.transactions.delete(fullTransactionId);
@@ -1326,12 +1318,11 @@ export class MockSpanner {
13261318
const readTimestamp = options && options.readOnly ? now() : undefined;
13271319
let precommitToken;
13281320
if (this.mutationOnly && session.multiplexed && options?.readWrite) {
1329-
const transactionKey = `${session.name}/${transactionId}`;
13301321
// get the current seqNum
1331-
const currentSeqNum = this.transactionSeqNum.get(transactionKey) || 0;
1322+
const currentSeqNum = this.transactionSeqNum.get(fullTransactionId) || 0;
13321323
const nextSeqNum = currentSeqNum + 1;
13331324
// set the next seqNum
1334-
this.transactionSeqNum.set(transactionKey, nextSeqNum);
1325+
this.transactionSeqNum.set(fullTransactionId, nextSeqNum);
13351326
precommitToken = {
13361327
precommitToken: Buffer.from('mock-precommit-token'),
13371328
seqNum: nextSeqNum,

test/spanner.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4731,8 +4731,7 @@ describe('Spanner with mock server', () => {
47314731

47324732
// parallel transactions
47334733
describe('parallel transactions', async () => {
4734-
async function readAndMutations() {
4735-
const database = newTestDatabase();
4734+
async function readAndMutations(database) {
47364735
await database.runTransactionAsync(async tx => {
47374736
await tx.run(selectSql);
47384737
await tx.run(selectSql);
@@ -4745,10 +4744,11 @@ describe('Spanner with mock server', () => {
47454744
}
47464745
it('should have different precommit tokens for each transactions when running parallely', async () => {
47474746
const promises: Promise<void>[] = [];
4747+
const database = newTestDatabase();
47484748

47494749
// run the transactions parallely
4750-
promises.push(readAndMutations());
4751-
promises.push(readAndMutations());
4750+
promises.push(readAndMutations(database));
4751+
promises.push(readAndMutations(database));
47524752

47534753
// wait for the transaction to complete its execution
47544754
await Promise.all(promises);

0 commit comments

Comments
 (0)