Refactor database reset and migration handling in BeEF debug modules for improved synchronization and conditional execution

This commit is contained in:
zinduolis
2025-09-06 10:36:13 +10:00
parent 81a4caa836
commit ac6dfe50a5

View File

@@ -10,6 +10,8 @@ require_relative '../../../spec_helper'
require_relative '../../../support/constants'
require_relative '../../../support/beef_test'
MUTEX = Mutex.new
RSpec.describe 'BeEF Debug Command Modules:', run_on_browserstack: true do
before(:all) do
# Grab config and set creds in variables for ease of access
@@ -19,7 +21,11 @@ RSpec.describe 'BeEF Debug Command Modules:', run_on_browserstack: true do
print_info 'Loading database'
db_file = @config.get('beef.database.file')
print_info 'Resetting the database for BeEF.'
if ENV['RESET_DB']
File.delete(db_file) if File.exist?(db_file)
end
@username = @config.get('beef.credentials.user')
@password = @config.get('beef.credentials.passwd')
@@ -48,8 +54,12 @@ RSpec.describe 'BeEF Debug Command Modules:', run_on_browserstack: true do
end
ActiveRecord::Migrator.migrations_paths = [File.join('core', 'main', 'ar-migrations')]
MUTEX.synchronize do
context = ActiveRecord::MigrationContext.new(ActiveRecord::Migrator.migrations_paths)
ActiveRecord::Migrator.new(:up, context.migrations, context.schema_migration, context.internal_metadata).migrate if context.needs_migration?
if context.needs_migration?
ActiveRecord::Migrator.new(:up, context.migrations, context.schema_migration, context.internal_metadata).migrate
end
end
BeEF::Core::Migration.instance.update_db!