fix: no required programmer for debug --info

Ref: arduino/arduino-cli#2540
Closes: arduino/arduino-ide#2368

Signed-off-by: Akos Kitta <a.kitta@arduino.cc>
This commit is contained in:
Akos Kitta
2024-02-15 18:34:16 +01:00
parent cac351fa70
commit b178cefe0a
7 changed files with 12 additions and 27 deletions

View File

@@ -169,7 +169,7 @@
],
"arduino": {
"arduino-cli": {
"version": "0.35.2"
"version": "0.35.3"
},
"arduino-fwuploader": {
"version": "2.4.1"

View File

@@ -398,12 +398,9 @@ export async function isDebugEnabled(
`Failed to append boards config to the FQBN. Original FQBN was: ${fqbn}`
);
}
if (!data.selectedProgrammer) {
throw new Error(noProgrammerSelectedFor(board.name));
}
const params = {
fqbn: fqbnWithConfig,
programmer: data.selectedProgrammer.id,
programmer: data.selectedProgrammer?.id,
};
try {
const debugFqbn = await checkDebugEnabled(params);
@@ -443,13 +440,3 @@ export function debuggingNotSupported(boardName: string): string {
boardName
);
}
/**
* (non-API)
*/
export function noProgrammerSelectedFor(boardName: string): string {
return nls.localize(
'arduino/debug/noProgrammerSelectedFor',
"No programmer selected for '{0}'",
boardName
);
}

View File

@@ -95,7 +95,7 @@ export interface CheckDebugEnabledParams {
* The FQBN might contain custom board config options. For example, `arduino:esp32:nano_nora:USBMode=hwcdc,option2=value2`.
*/
readonly fqbn: string;
readonly programmer: string;
readonly programmer?: string;
}
export interface BoardSearch extends Searchable.Options {

View File

@@ -178,7 +178,7 @@ export class BoardsServiceImpl
const req = new IsDebugSupportedRequest()
.setInstance(instance)
.setFqbn(fqbn)
.setProgrammer(programmer);
.setProgrammer(programmer ?? '');
try {
const debugFqbn = await new Promise<string>((resolve, reject) =>
client.isDebugSupported(req, (err, resp) => {

View File

@@ -28,7 +28,6 @@ import {
debuggingNotSupported,
isDebugEnabled,
noPlatformInstalledFor,
noProgrammerSelectedFor,
} from '../../browser/contributions/debug';
import { NotificationCenter } from '../../browser/notification-center';
import { noBoardSelected } from '../../common/nls';
@@ -117,20 +116,20 @@ describe('debug', () => {
);
});
it('should error when no programmer selected', async () => {
it('should resolve when no programmer is selected (arduino/arduino-cli#2540)', async () => {
const copyData: Mutable<BoardsDataStore.Data> = deepClone(data);
delete copyData.selectedProgrammer;
await rejects(
await doesNotReject(
isDebugEnabled(
board,
() => boardDetails,
() => copyData,
(fqbn) => fqbn,
unexpectedCall()
),
(reason) =>
reason instanceof Error &&
reason.message === noProgrammerSelectedFor(board.name)
async (params) => {
expect(params.programmer).to.be.undefined;
return params.fqbn;
}
)
);
});