Refactor database reset handling in AutoRunEngine and Websocket hooked browser specs for improved synchronization
This commit is contained in:
@@ -10,6 +10,8 @@ require_relative '../../../../spec_helper'
|
||||
require_relative '../../../../support/constants'
|
||||
require_relative '../../../../support/beef_test'
|
||||
|
||||
MUTEX = Mutex.new
|
||||
|
||||
RSpec.describe 'AutoRunEngine Test', run_on_browserstack: true do
|
||||
before(:all) do
|
||||
@config = BeEF::Core::Configuration.instance
|
||||
@@ -18,7 +20,10 @@ RSpec.describe 'AutoRunEngine Test', run_on_browserstack: true do
|
||||
print_info 'Loading database'
|
||||
db_file = @config.get('beef.database.file')
|
||||
print_info 'Resetting the database for BeEF.'
|
||||
File.delete(db_file) if File.exist?(db_file)
|
||||
|
||||
if ENV['RESET_DB']
|
||||
File.delete(db_file) if File.exist?(db_file)
|
||||
end
|
||||
|
||||
@config.set('beef.credentials.user', 'beef')
|
||||
@config.set('beef.credentials.passwd', 'beef')
|
||||
@@ -49,8 +54,12 @@ RSpec.describe 'AutoRunEngine Test', run_on_browserstack: true do
|
||||
OTR::ActiveRecord.establish_connection!
|
||||
end
|
||||
ActiveRecord::Migrator.migrations_paths = [File.join('core', 'main', 'ar-migrations')]
|
||||
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?
|
||||
MUTEX.synchronize do
|
||||
context = ActiveRecord::MigrationContext.new(ActiveRecord::Migrator.migrations_paths)
|
||||
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!
|
||||
|
||||
|
||||
@@ -20,7 +20,11 @@ RSpec.describe 'Browser hooking with Websockets', run_on_browserstack: true do
|
||||
print_info 'Loading database'
|
||||
db_file = @config.get('beef.database.file')
|
||||
print_info 'Resetting the database for BeEF.'
|
||||
File.delete(db_file) if File.exist?(db_file)
|
||||
|
||||
if ENV['RESET_DB']
|
||||
File.delete(db_file) if File.exist?(db_file)
|
||||
end
|
||||
|
||||
@config.set('beef.credentials.user', 'beef')
|
||||
@config.set('beef.credentials.passwd', 'beef')
|
||||
@config.set('beef.http.websocket.secure', false)
|
||||
|
||||
Reference in New Issue
Block a user