* init: copy PI files * feat: add subscribers, refactor strategies folder * wip: strategies integration tests package * fix: rename * wip: use redis * wip: use redis deps, redis setup in local tests * fix: naming collision, medusa config * fix: typing, update apply changes for new event ordering and reimplement interface * feat: make redis container run in integration tests * fix: missing yarn lock * feat: redis setup v2 * fix: setup server imports * fix: a lot of integration issues * fix: a lot of integration issues v2, transform tags, fix `ops` object parsing * wip: parsing product options * feat: ✨creating product and variants works, processing product/variant options, update schema * fix: query keys, logic for finding existing variant * fix: types * feat: update product variant's options * feat: parse MA records * feat: creating/updating MA records, region detection, error handling * feat: throw an error when creating an MA for nonexistent region * refactor: remove unused methods * refactor: use provided ids to track records, extract a couple of methods * refactor: remove unused method * refactor/wip: add initial comment for main methods * refactor: replace usage of RedisJSON functionality with basic k/v api * feat: async progress report * types: define more precise types, cleanup * feat: error handling * feat: unit testing preprocessing * feat: integration testing for CI, fix legacy bug where user is unable to create a variant if regional price is also sent as payload, add csv for integration tests * fix: error throw for logs * feat: add product endpoint snap * refactor: remove log * feat: add snaps, rebase * refactor: add comments * feat: snap update * refactor: typo * refactor: change error handler * feat: Redis cleanup after the job is done * testing :fix product unit test, remove integration snap, add inline object matcher * testing: fix obsolete snaps * refactor: update comments * fix: rebase issue * fix: rebase issue v2, remove log form an integration test * fix: try reverting setup server * fix: insert variants test * refactor: don't pass tx manager, refactor methods * refactor: don't use regionRepo, add `retrieveByName` to region repo * refactor: don't use productRepo * refactor: don't use `productVariantRepo` * refactor: remove repo mocks from unit tests * fix: product import unit tests * feat: file cleanup on finalize, kill test logs * wip: use files to persist ops instead of redis, move strategy class into `batch-job` folder * fix: minio delete method, add file cleanup method to import, fix promise coordination * fix: replace redis methods * feat: store import ops as a file instead of Redis * feat: test cleanup * fix: change unit tests after Redis logic removal * feat: use `results` for progress reporting, add `stat_descriptors` info after preprocessing, remove redis mentions * feat: extract to other files, use directory from property, fix strategy loader to allow other files in `strategies` directory * feat: fix instance progress counter * fix: mock services types * fix: update snaps * fix: error handling stream, fix test file service name generation * fix: remove dir with tmp files after testing * fix: new yarn.lock after rebase * fix: remove log, change object shape * fix: add DI types * refactor: remove container as a csv parser dep * fix: remove seeder, change typings * refactor: reimplement `retrieveByName` in the region service * fix: unit tests typings * fix: remove ts-ignore, complete typings for csv parser validators * fix: don't keep track of progress since it is redundant and only keep track of `advancement_count` * fix: return of the batch job seeder * fix: update find region by name method * fix: update types for service typings * fix: update redis type usage * fix: update unit tests file * fix: unit tests * fix: remove redis from integration test * feat: refactor region retrieval by name * feat: refactor product option update * fix: remove repo import * fix: return redis in test * fix: handle stream error * fix: tmp data cleanup Co-authored-by: fPolic <frane@medusajs.com>
59 lines
1.2 KiB
TypeScript
59 lines
1.2 KiB
TypeScript
const path = require("path")
|
|
|
|
const Redis = require("ioredis")
|
|
const { GenericContainer } = require("testcontainers")
|
|
|
|
require("dotenv").config({ path: path.join(__dirname, "../.env") })
|
|
|
|
const workerId = parseInt(process.env.JEST_WORKER_ID || "1")
|
|
|
|
const DB_USERNAME = process.env.DB_USERNAME || "postgres"
|
|
const DB_PASSWORD = process.env.DB_PASSWORD || ""
|
|
|
|
const DbTestUtil = {
|
|
db_: null,
|
|
|
|
setDb: function (connection) {
|
|
this.db_ = connection
|
|
},
|
|
|
|
clear: async function () {
|
|
/* noop */
|
|
},
|
|
|
|
teardown: async function () {
|
|
/* noop */
|
|
},
|
|
|
|
shutdown: async function () {
|
|
/* noop */
|
|
// TODO: stop container
|
|
},
|
|
}
|
|
|
|
const instance = DbTestUtil
|
|
|
|
module.exports = {
|
|
initRedis: async function ({ cwd }) {
|
|
// const configPath = path.resolve(path.join(cwd, `medusa-config.js`))
|
|
// const { projectConfig } = require(configPath)
|
|
|
|
const container = await new GenericContainer("redis")
|
|
.withExposedPorts(6379)
|
|
.start()
|
|
|
|
const redisClient = new Redis({
|
|
host: container.getHost(),
|
|
port: container.getMappedPort(6379),
|
|
db: workerId,
|
|
})
|
|
|
|
instance.setDb(redisClient)
|
|
|
|
return redisClient
|
|
},
|
|
useRedis: function () {
|
|
return instance
|
|
},
|
|
}
|