diff --git a/models/GraphicsContextSettings/GraphicsContextSettings.js b/models/GraphicsContextSettings/GraphicsContextSettings.js index 0bbd358..c7d05fb 100644 --- a/models/GraphicsContextSettings/GraphicsContextSettings.js +++ b/models/GraphicsContextSettings/GraphicsContextSettings.js @@ -40,7 +40,7 @@ class GraphicsContextSettings { } else { Object.assign(this, GraphicsContextSettings.Model, args, { blendMode: blendModeMap[args.blendMode || 'normal'], - opacity: args.opacity || 1, + opacity: Number.isFinite(args.opacity) ? args.opacity : 1, }); } return this; diff --git a/models/GraphicsContextSettings/GraphicsContextSettings.test.js b/models/GraphicsContextSettings/GraphicsContextSettings.test.js index f6c1e95..da2cc2c 100644 --- a/models/GraphicsContextSettings/GraphicsContextSettings.test.js +++ b/models/GraphicsContextSettings/GraphicsContextSettings.test.js @@ -19,4 +19,12 @@ describe('GraphicsContextSettings', () => { const graphicsContextSettings = new GraphicsContextSettings(null, json); expect(JSON.stringify(json, null, 2)).toEqual(JSON.stringify(graphicsContextSettings, null, 2)); }); + + it('should correctly handle opacity = 0', () => { + const graphicsContextSettings = new GraphicsContextSettings({ + opacity: 0, + }); + + expect(graphicsContextSettings.opacity).toBe(0); + }); });