diff --git a/plugins/plugin-tools/src/config.ts b/plugins/plugin-tools/src/config.ts index 935eb9f..2214146 100644 --- a/plugins/plugin-tools/src/config.ts +++ b/plugins/plugin-tools/src/config.ts @@ -41,8 +41,14 @@ const junoConfigSatelliteId = async ({mode}: ConfigArgs): Promise => { const satelliteId = ids?.[mode] ?? id ?? deprecatedSatelliteId; if (satelliteId === undefined) { + if (mode === MODE_DEVELOPMENT) { + throw new JunoPluginError( + `Your configuration is invalid. A Satellite ID for ${mode} must be provided.` + ); + } + throw new JunoPluginError( - `Your configuration is invalid. A satellite ID for ${mode} must be set in your configuration file.` + `Your project needs a Satellite for ${mode}. Create one at https://console.juno.build and set its ID in your configuration file.` ); } diff --git a/plugins/plugin-tools/src/init.spec.ts b/plugins/plugin-tools/src/init.spec.ts index 8beb09d..b211dc1 100644 --- a/plugins/plugin-tools/src/init.spec.ts +++ b/plugins/plugin-tools/src/init.spec.ts @@ -183,16 +183,35 @@ describe('init', () => { }, mode: MODE_DEVELOPMENT }) - ).rejects.toThrow(/A satellite ID for development must be set/); + ).rejects.toThrow( + 'Your configuration is invalid. A Satellite ID for development must be provided.' + ); + }); + + it('throws if satelliteId is missing in config in development', async () => { + vi.spyOn(configLoader, 'readJunoConfig').mockResolvedValueOnce({ + satellite: {} + } as unknown as JunoConfig); + + await expect( + initConfig({ + params: { + container: false + }, + mode: MODE_DEVELOPMENT + }) + ).rejects.toThrow( + 'Your configuration is invalid. A Satellite ID for development must be provided.' + ); }); - it('throws if satelliteId is missing in config', async () => { + it('throws if satelliteId is missing in config in production', async () => { vi.spyOn(configLoader, 'readJunoConfig').mockResolvedValueOnce({ satellite: {} } as unknown as JunoConfig); await expect(initConfig(args)).rejects.toThrow( - /Your configuration is invalid. A satellite ID for production must be set in your configuration file./ + 'Your project needs a Satellite for production. Create one at https://console.juno.build and set its ID in your configuration file.' ); }); });