Files
myDrive/tests/utils/db-setup.js
T
oxmc ecc340e7b1
Release Please / release-please (push) Has been cancelled
Docker Build and Push (Development) / build-and-push-dev (push) Has been cancelled
feat: add dark mode UI and SQLite as alternate database backend
Dark mode: CSS custom properties + .dark class toggled via Redux/localStorage,
with a theme toggle in the Header and Settings page. Foundation didn't exist
yet despite prior assumption, so it was built from scratch.

SQLite: new DB_ENGINE=mongo|sqlite env var selects the metadata backend at
runtime (Mongo stays default, no behavior change unless opted in). File/thumbnail
bytes continue to use the existing fs/S3 storage path. Implemented via a shared
DB interface (dbTypes.ts) with parallel mongoDB/ and sqliteDB/ implementations,
selected through dbFactory.ts, with JWT/encryption logic extracted into
userCrypto.ts so both engines share it.
2026-07-05 04:18:33 -07:00

52 lines
1.8 KiB
JavaScript

const createTestData = (mongoose) => {
const file = new mongoose.model("fs.files");
file.create({
name: "test.txt",
type: "text/plain",
size: 10,
userId: "5f7e5d8d1f962d5a0f5e8a9e",
});
};
const envFileFix = (env) => {
env.key = process.env.KEY;
env.newKey = process.env.NEW_KEY;
env.passwordAccess = process.env.PASSWORD_ACCESS;
env.passwordRefresh = process.env.PASSWORD_REFRESH;
env.passwordCookie = process.env.PASSWORD_COOKIE;
env.createAcctBlocked = process.env.BLOCK_CREATE_ACCOUNT;
env.root = process.env.ROOT;
env.url = process.env.URL;
env.mongoURL = process.env.MONGODB_URL;
env.dbEngine = process.env.DB_ENGINE || "mongo";
env.sqliteDBPath = process.env.SQLITE_DB_PATH || "./data/mydrive.db";
env.dbType = process.env.DB_TYPE;
env.fsDirectory = process.env.FS_DIRECTORY;
env.s3ID = process.env.S3_ID;
env.s3Key = process.env.S3_KEY;
env.s3Bucket = process.env.S3_BUCKET;
env.useDocumentDB = process.env.USE_DOCUMENT_DB;
env.documentDBBundle = process.env.DOCUMENT_DB_BUNDLE;
env.sendgridKey = process.env.SENDGRID_KEY;
env.sendgridEmail = process.env.SENDGRID_EMAIL;
env.remoteURL = process.env.REMOTE_URL;
env.secureCookies = process.env.SECURE_COOKIES;
env.tempDirectory = process.env.TEMP_DIRECTORY;
env.emailVerification = process.env.EMAIL_VERIFICATION;
env.emailDomain = process.env.EMAIL_DOMAIN;
env.emailAPIKey = process.env.EMAIL_API_KEY;
env.emailHost = process.env.EMAIL_HOST;
env.emailPort = process.env.EMAIL_PORT;
env.emailAddress = process.env.EMAIL_ADDRESS;
env.videoThumbnailsEnabled = process.env.VIDEO_THUMBNAILS_ENABLED === "true";
env.tempVideoThumbnailLimit = process.env.TEMP_VIDEO_THUMBNAIL_LIMIT
? +process.env.TEMP_VIDEO_THUMBNAIL_LIMIT
: 0;
env.docker = process.env.DOCKER === "true";
};
module.exports = {
envFileFix,
};