-
Notifications
You must be signed in to change notification settings - Fork 659
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
* migration test + indexes * linter * 0006 * bug fixed * linter * suggestion + comment
- Loading branch information
Showing
11 changed files
with
483 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
package migrations_test | ||
|
||
import ( | ||
"database/sql" | ||
"testing" | ||
"time" | ||
|
||
"github.com/stretchr/testify/assert" | ||
) | ||
|
||
// This migration creates a different proof table dropping all the information. | ||
|
||
type migrationTest0002 struct{} | ||
|
||
func (m migrationTest0002) InsertData(db *sql.DB) error { | ||
// Insert block to respect the FKey | ||
const addBlock = "INSERT INTO state.block (block_num, received_at, block_hash) VALUES ($1, $2, $3)" | ||
if _, err := db.Exec(addBlock, 1, time.Now(), "0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1"); err != nil { | ||
return err | ||
} | ||
// Insert batch to respect the FKey | ||
_, err := db.Exec("INSERT INTO state.batch (batch_num) VALUES (1)") | ||
if err != nil { | ||
return err | ||
} | ||
// Insert old proof | ||
const insertProof = `INSERT INTO state.proof ( | ||
batch_num, proof, proof_id, input_prover, prover | ||
) VALUES ( | ||
1,'{}','proof_identifier','{}','prover 1' | ||
);` | ||
_, err = db.Exec(insertProof) | ||
return err | ||
} | ||
|
||
func (m migrationTest0002) RunAssertsAfterMigrationUp(t *testing.T, db *sql.DB) { | ||
// Insert new proof | ||
const insertProof = `INSERT INTO state.proof ( | ||
batch_num, batch_num_final, proof, proof_id, input_prover, prover, generating | ||
) VALUES ( | ||
1, 1, '{}','proof_identifier','{}','prover 1', true | ||
);` | ||
_, err := db.Exec(insertProof) | ||
assert.NoError(t, err) | ||
} | ||
|
||
func (m migrationTest0002) RunAssertsAfterMigrationDown(t *testing.T, db *sql.DB) { | ||
// Insert new proof | ||
const insertNewProof = `INSERT INTO state.proof ( | ||
batch_num, batch_num_final, proof, proof_id, input_prover, prover, generating | ||
) VALUES ( | ||
1, 1, '{}','proof_identifier','{}','prover 1', true | ||
);` | ||
_, err := db.Exec(insertNewProof) | ||
assert.Error(t, err) | ||
|
||
// Insert old proof | ||
const insertProof = `INSERT INTO state.proof ( | ||
batch_num, proof, proof_id, input_prover, prover | ||
) VALUES ( | ||
1,'{}','proof_identifier','{}','prover 1' | ||
);` | ||
_, err = db.Exec(insertProof) | ||
assert.NoError(t, err) | ||
} | ||
|
||
func TestMigration0002(t *testing.T) { | ||
runMigrationTest(t, 2, migrationTest0002{}) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
package migrations_test | ||
|
||
import ( | ||
"database/sql" | ||
"testing" | ||
"time" | ||
|
||
"github.com/stretchr/testify/assert" | ||
) | ||
|
||
// This migration adds the column `eth_tx_hash` on `batch` | ||
|
||
type migrationTest0003 struct{} | ||
|
||
func (m migrationTest0003) InsertData(db *sql.DB) error { | ||
return nil | ||
} | ||
|
||
func (m migrationTest0003) RunAssertsAfterMigrationUp(t *testing.T, db *sql.DB) { | ||
const insertDebug = `INSERT INTO state.debug (error_type, timestamp, payload) VALUES ('error type', $1, 'payload stored')` | ||
_, err := db.Exec(insertDebug, time.Now()) | ||
assert.NoError(t, err) | ||
} | ||
|
||
func (m migrationTest0003) RunAssertsAfterMigrationDown(t *testing.T, db *sql.DB) { | ||
const insertDebug = `INSERT INTO state.debug (error_type, timestamp, payload) VALUES ('error type', $1, 'payload stored')` | ||
_, err := db.Exec(insertDebug, time.Now()) | ||
assert.Error(t, err) | ||
} | ||
|
||
func TestMigration0003(t *testing.T) { | ||
runMigrationTest(t, 3, migrationTest0003{}) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
package migrations_test | ||
|
||
import ( | ||
"database/sql" | ||
"testing" | ||
"time" | ||
|
||
"github.com/ethereum/go-ethereum/common" | ||
"github.com/stretchr/testify/assert" | ||
) | ||
|
||
// This migration creates the fiat table | ||
|
||
type migrationTest0004 struct{} | ||
|
||
func (m migrationTest0004) InsertData(db *sql.DB) error { | ||
// Insert block to respect the FKey | ||
const addBlock = "INSERT INTO state.block (block_num, received_at, block_hash) VALUES ($1, $2, $3)" | ||
if _, err := db.Exec(addBlock, 1, time.Now(), "0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1"); err != nil { | ||
return err | ||
} | ||
const addForcedBatch = "INSERT INTO state.forced_batch (forced_batch_num, global_exit_root, raw_txs_data, coinbase, timestamp, block_num, batch_num) VALUES ($1, $2, $3, $4, $5, $6, $7)" | ||
if _, err := db.Exec(addForcedBatch, 1, "0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1", "", "0x2536C2745Ac4A584656A830f7bdCd329c94e8F30", time.Now(), 1, 1); err != nil { | ||
return err | ||
} | ||
// Insert batch | ||
_, err := db.Exec(`INSERT INTO state.batch (batch_num, global_exit_root, local_exit_root, state_root, acc_input_hash, timestamp, coinbase, raw_txs_data) | ||
VALUES (1, '0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1', '0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1', | ||
'0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1', '0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1', | ||
$1, '0x2536C2745Ac4A584656A830f7bdCd329c94e8F30', $2)`, time.Now(), common.HexToHash("0x29e885edaf8e0000000000000000a23cf2d7d9f1")) | ||
if err != nil { | ||
return err | ||
} | ||
return nil | ||
} | ||
|
||
func (m migrationTest0004) RunAssertsAfterMigrationUp(t *testing.T, db *sql.DB) { | ||
// Insert batch | ||
_, err := db.Exec(`INSERT INTO state.batch (batch_num, global_exit_root, local_exit_root, state_root, acc_input_hash, timestamp, coinbase, raw_txs_data, forced_batch_num) | ||
VALUES (2, '0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1', '0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1', | ||
'0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1', '0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1', | ||
$1, '0x2536C2745Ac4A584656A830f7bdCd329c94e8F30', $2, 1)`, time.Now(), common.HexToHash("0x29e885edaf8e0000000000000000a23cf2d7d9f1")) | ||
assert.NoError(t, err) | ||
addForcedBatch := "INSERT INTO state.forced_batch (forced_batch_num, global_exit_root, raw_txs_data, coinbase, timestamp, block_num, batch_num) VALUES ($1, $2, $3, $4, $5, $6, $7)" | ||
_, err = db.Exec(addForcedBatch, 1, "0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1", "", "0x2536C2745Ac4A584656A830f7bdCd329c94e8F30", time.Now(), 1, 2) | ||
assert.Error(t, err) | ||
addForcedBatch = "INSERT INTO state.forced_batch (forced_batch_num, global_exit_root, raw_txs_data, coinbase, timestamp, block_num) VALUES ($1, $2, $3, $4, $5, $6)" | ||
_, err = db.Exec(addForcedBatch, 2, "0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1", "", "0x2536C2745Ac4A584656A830f7bdCd329c94e8F30", time.Now(), 1) | ||
assert.NoError(t, err) | ||
} | ||
|
||
func (m migrationTest0004) RunAssertsAfterMigrationDown(t *testing.T, db *sql.DB) { | ||
const addForcedBatch = "INSERT INTO state.forced_batch (forced_batch_num, global_exit_root, raw_txs_data, coinbase, timestamp, block_num, batch_num) VALUES ($1, $2, $3, $4, $5, $6, $7)" | ||
_, err := db.Exec(addForcedBatch, 3, "0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1", "", "0x2536C2745Ac4A584656A830f7bdCd329c94e8F30", time.Now(), 1, 1) | ||
assert.NoError(t, err) | ||
// Insert batch | ||
_, err = db.Exec(`INSERT INTO state.batch (batch_num, global_exit_root, local_exit_root, state_root, acc_input_hash, timestamp, coinbase, raw_txs_data, forced_batch_num) | ||
VALUES (3, '0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1', '0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1', | ||
'0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1', '0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1', | ||
$1, '0x2536C2745Ac4A584656A830f7bdCd329c94e8F30', $2, 1)`, time.Now(), common.HexToHash("0x29e885edaf8e0000000000000000a23cf2d7d9f1")) | ||
assert.Error(t, err) | ||
_, err = db.Exec(`INSERT INTO state.batch (batch_num, global_exit_root, local_exit_root, state_root, acc_input_hash, timestamp, coinbase, raw_txs_data) | ||
VALUES (3, '0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1', '0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1', | ||
'0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1', '0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1', | ||
$1, '0x2536C2745Ac4A584656A830f7bdCd329c94e8F30', $2)`, time.Now(), common.HexToHash("0x29e885edaf8e0000000000000000a23cf2d7d9f1")) | ||
assert.NoError(t, err) | ||
} | ||
|
||
func TestMigration0004(t *testing.T) { | ||
runMigrationTest(t, 4, migrationTest0004{}) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,125 @@ | ||
package migrations_test | ||
|
||
import ( | ||
"database/sql" | ||
"testing" | ||
"time" | ||
|
||
"github.com/ethereum/go-ethereum/common" | ||
"github.com/stretchr/testify/assert" | ||
) | ||
|
||
// this migration changes length of the token name | ||
type migrationTest0005 struct{} | ||
|
||
func (m migrationTest0005) InsertData(db *sql.DB) error { | ||
// Insert block to respect the FKey | ||
const addBlock = "INSERT INTO state.block (block_num, received_at, block_hash) VALUES ($1, $2, $3)" | ||
if _, err := db.Exec(addBlock, 1, time.Now(), "0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1"); err != nil { | ||
return err | ||
} | ||
// Insert batch | ||
_, err := db.Exec(`INSERT INTO state.batch (batch_num, global_exit_root, local_exit_root, state_root, acc_input_hash, timestamp, coinbase, raw_txs_data) | ||
VALUES (1, '0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1', '0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1', | ||
'0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1', '0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1', | ||
$1, '0x2536C2745Ac4A584656A830f7bdCd329c94e8F30', $2)`, time.Now(), common.HexToHash("0x29e885edaf8e0000000000000000a23cf2d7d9f1")) | ||
if err != nil { | ||
return err | ||
} | ||
// Insert virtual batch | ||
const insertVirtualBatch = `INSERT INTO state.virtual_batch ( | ||
batch_num, tx_hash, coinbase, block_num | ||
) VALUES ( | ||
1, '0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1', '0x514910771af9ca656af840dff83e8264ecf986ca', 1);` | ||
_, err = db.Exec(insertVirtualBatch) | ||
if err != nil { | ||
return err | ||
} | ||
// Insert verified batch | ||
const insertVerifiedBatch = `INSERT INTO state.verified_batch ( | ||
batch_num, tx_hash, aggregator, state_root, block_num | ||
) VALUES ( | ||
1, '0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1', '0x514910771af9ca656af840dff83e8264ecf986ca', '0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1', 1 | ||
);` | ||
_, err = db.Exec(insertVerifiedBatch) | ||
return err | ||
} | ||
|
||
func (m migrationTest0005) RunAssertsAfterMigrationUp(t *testing.T, db *sql.DB) { | ||
// Insert batch | ||
_, err := db.Exec(`INSERT INTO state.batch (batch_num, global_exit_root, local_exit_root, state_root, acc_input_hash, timestamp, coinbase, raw_txs_data) | ||
VALUES (2, '0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1', '0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1', | ||
'0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1', '0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1', | ||
$1, '0x2536C2745Ac4A584656A830f7bdCd329c94e8F30', $2)`, time.Now(), common.HexToHash("0x29e885edaf8e0000000000000000a23cf2d7d9f1")) | ||
assert.NoError(t, err) | ||
// Insert virtual batch | ||
const insertVirtualBatch = `INSERT INTO state.virtual_batch ( | ||
batch_num, tx_hash, coinbase, block_num | ||
) VALUES ( | ||
2, '0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1', '0x514910771af9ca656af840dff83e8264ecf986ca', 1);` | ||
_, err = db.Exec(insertVirtualBatch) | ||
assert.NoError(t, err) | ||
|
||
// Insert verified batch | ||
const insertVerifiedBatch = `INSERT INTO state.verified_batch ( | ||
batch_num, tx_hash, aggregator, state_root, block_num, is_trusted | ||
) VALUES ( | ||
2, '0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1', '0x514910771af9ca656af840dff83e8264ecf986ca', '0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1', 1, true | ||
);` | ||
_, err = db.Exec(insertVerifiedBatch) | ||
assert.NoError(t, err) | ||
|
||
// Insert monitored_txs | ||
const insertMonitoredTxs = `INSERT INTO state.monitored_txs ( | ||
owner, id, from_addr, to_addr, nonce, value, data, gas, gas_price, status, block_num, created_at, updated_at | ||
) VALUES ( | ||
'0x514910771af9ca656af840dff83e8264ecf986ca', '1', '0x514910771af9ca656af840dff83e8264ecf986ca', '0x514910771af9ca656af840dff83e8264ecf986ca', 1, 0, '0x', 100, 12, 'created', 1, $1, $2 | ||
);` | ||
_, err = db.Exec(insertMonitoredTxs, time.Now(), time.Now()) | ||
assert.NoError(t, err) | ||
} | ||
|
||
func (m migrationTest0005) RunAssertsAfterMigrationDown(t *testing.T, db *sql.DB) { | ||
// Insert batch | ||
_, err := db.Exec(`INSERT INTO state.batch (batch_num, global_exit_root, local_exit_root, state_root, acc_input_hash, timestamp, coinbase, raw_txs_data) | ||
VALUES (3, '0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1', '0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1', | ||
'0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1', '0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1', | ||
$1, '0x2536C2745Ac4A584656A830f7bdCd329c94e8F30', $2)`, time.Now(), common.HexToHash("0x29e885edaf8e0000000000000000a23cf2d7d9f1")) | ||
assert.NoError(t, err) | ||
// Insert virtual batch | ||
const insertVirtualBatch = `INSERT INTO state.virtual_batch ( | ||
batch_num, tx_hash, coinbase, block_num | ||
) VALUES ( | ||
3, '0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1', '0x514910771af9ca656af840dff83e8264ecf986ca', 1);` | ||
_, err = db.Exec(insertVirtualBatch) | ||
assert.NoError(t, err) | ||
|
||
// Insert verified batch | ||
insertVerifiedBatch := `INSERT INTO state.verified_batch ( | ||
batch_num, tx_hash, aggregator, state_root, block_num, is_trusted | ||
) VALUES ( | ||
3, '0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1', '0x514910771af9ca656af840dff83e8264ecf986ca', '0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1', 1, true | ||
);` | ||
_, err = db.Exec(insertVerifiedBatch) | ||
assert.Error(t, err) | ||
insertVerifiedBatch = `INSERT INTO state.verified_batch ( | ||
batch_num, tx_hash, aggregator, state_root, block_num | ||
) VALUES ( | ||
3, '0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1', '0x514910771af9ca656af840dff83e8264ecf986ca', '0x29e885edaf8e4b51e1d2e05f9da28161d2fb4f6b1d53827d9b80a23cf2d7d9f1', 1 | ||
);` | ||
_, err = db.Exec(insertVerifiedBatch) | ||
assert.NoError(t, err) | ||
|
||
// Insert monitored_txs | ||
const insertMonitoredTxs = `INSERT INTO state.monitored_txs ( | ||
owner, id, from_addr, to_addr, nonce, value, data, gas, gas_price, status, block_num, created_at, updated_at | ||
) VALUES ( | ||
'0x514910771af9ca656af840dff83e8264ecf986ca', '1', '0x514910771af9ca656af840dff83e8264ecf986ca', '0x514910771af9ca656af840dff83e8264ecf986ca', 1, 0, '0x', 100, 12, 'created', 1, $1, $2 | ||
);` | ||
_, err = db.Exec(insertMonitoredTxs, time.Now(), time.Now()) | ||
assert.Error(t, err) | ||
} | ||
|
||
func TestMigration0005(t *testing.T) { | ||
runMigrationTest(t, 5, migrationTest0005{}) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
-- +migrate Up | ||
CREATE INDEX IF NOT EXISTS transaction_l2_block_num_idx ON state.transaction (l2_block_num); | ||
CREATE INDEX IF NOT EXISTS l2block_batch_num_idx ON state.l2block (batch_num); | ||
CREATE INDEX IF NOT EXISTS l2block_received_at_idx ON state.l2block (received_at); | ||
CREATE INDEX IF NOT EXISTS batch_timestamp_idx ON state.batch ("timestamp"); | ||
CREATE INDEX IF NOT EXISTS log_tx_hash_idx ON state.log (tx_hash); | ||
CREATE INDEX IF NOT EXISTS log_address_idx ON state.log (address); | ||
|
||
-- +migrate Down | ||
DROP INDEX IF EXISTS state.transaction_l2_block_num_idx; | ||
DROP INDEX IF EXISTS state.l2block_batch_num_idx; | ||
DROP INDEX IF EXISTS state.l2block_received_at_idx; | ||
DROP INDEX IF EXISTS state.batch_timestamp_idx; | ||
DROP INDEX IF EXISTS state.log_tx_hash_idx; | ||
DROP INDEX IF EXISTS state.log_address_idx; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
package migrations_test | ||
|
||
import ( | ||
"database/sql" | ||
"testing" | ||
|
||
"github.com/stretchr/testify/assert" | ||
) | ||
|
||
// this migration changes length of the token name | ||
type migrationTest0006 struct{} | ||
|
||
func (m migrationTest0006) InsertData(db *sql.DB) error { | ||
return nil | ||
} | ||
|
||
var indexes = []string{"transaction_l2_block_num_idx", "l2block_batch_num_idx", "l2block_received_at_idx", | ||
"batch_timestamp_idx", "log_tx_hash_idx", "log_address_idx"} | ||
|
||
func (m migrationTest0006) RunAssertsAfterMigrationUp(t *testing.T, db *sql.DB) { | ||
for _, idx := range indexes { | ||
// getIndex | ||
const getIndex = `SELECT count(*) FROM pg_indexes WHERE indexname = $1;` | ||
row := db.QueryRow(getIndex, idx) | ||
var result int | ||
assert.NoError(t, row.Scan(&result)) | ||
assert.Equal(t, 1, result) | ||
} | ||
} | ||
|
||
func (m migrationTest0006) RunAssertsAfterMigrationDown(t *testing.T, db *sql.DB) { | ||
for _, idx := range indexes { | ||
// getIndex | ||
const getIndex = `SELECT count(*) FROM pg_indexes WHERE indexname = $1;` | ||
row := db.QueryRow(getIndex, idx) | ||
var result int | ||
assert.NoError(t, row.Scan(&result)) | ||
assert.Equal(t, 0, result) | ||
} | ||
} | ||
|
||
func TestMigration0006(t *testing.T) { | ||
runMigrationTest(t, 6, migrationTest0006{}) | ||
} |
Oops, something went wrong.