const assert = require('assert');
const sinon = require('sinon');
const vscode = require('vscode');
const TestHelper = require('../utils/testHelper');
suite('InlineEditCommands Test Suite', () => {
let helper;
let sandbox;
let mockApiClient;
let mockAxios;
let stubs;
let mockContext;
let mockProviders;
setup(() => {
helper = new TestHelper();
sandbox = helper.sandbox;
const result = helper.createMockAPIClient();
mockApiClient = result.client;
mockAxios = result.mockAxios;
helper.setupMockAPIClient(mockAxios);
stubs = helper.setupCommonStubs();
mockContext = helper.createMockContext();
mockProviders = {
gorevTreeProvider: { refresh: sandbox.stub() },
projeTreeProvider: { refresh: sandbox.stub() },
templateTreeProvider: { refresh: sandbox.stub() }
};
sandbox.stub(mockApiClient, 'isConnected').returns(true);
});
teardown(() => {
helper.cleanup();
});
test('should register inline edit commands', () => {
try {
const module = require('../../out/commands/inlineEditCommands');
if (module && module.registerInlineEditCommands) {
module.registerInlineEditCommands(mockContext, mockApiClient, mockProviders);
assert(mockContext.subscriptions.length > 0);
}
} catch (error) {
// Module not compiled
assert(true);
}
});
test('should handle inline editing', () => {
mockAxios.onPut(/\/tasks\/[^/]+$/).reply(200, {
success: true
});
assert(true);
});
});