import { DebugManager } from './debug-manager.js';

describe('DebugManager', () => {
	let debugManager: DebugManager;

	beforeEach(() => {
		debugManager = DebugManager.getInstance();
	});

	test('should have debugging disabled by default', () => {
		expect(debugManager.isDebugEnabled()).toBe(false);
	});

	test('should enable debugging when setDebugEnabled(true) is called', () => {
		debugManager.setDebugEnabled(true);
		expect(debugManager.isDebugEnabled()).toBe(true);
	});

	test('should disable debugging when setDebugEnabled(false) is called', () => {
		debugManager.setDebugEnabled(true);
		debugManager.setDebugEnabled(false);
		expect(debugManager.isDebugEnabled()).toBe(false);
	});

	test('should maintain the correct debugging state between calls', () => {
		debugManager.setDebugEnabled(true);
		expect(debugManager.isDebugEnabled()).toBe(true);

		debugManager.setDebugEnabled(false);
		expect(debugManager.isDebugEnabled()).toBe(false);

		debugManager.setDebugEnabled(true);
		expect(debugManager.isDebugEnabled()).toBe(true);
	});
});
