diff --git a/tests/jsunit/index.html b/tests/jsunit/index.html
index 15a0b5156..3e633001e 100644
--- a/tests/jsunit/index.html
+++ b/tests/jsunit/index.html
@@ -20,7 +20,6 @@
-
diff --git a/tests/jsunit/variable_model_test.js b/tests/jsunit/variable_model_test.js
deleted file mode 100644
index 58e32c9b6..000000000
--- a/tests/jsunit/variable_model_test.js
+++ /dev/null
@@ -1,77 +0,0 @@
-/**
- * @license
- * Copyright 2017 Google LLC
- * SPDX-License-Identifier: Apache-2.0
- */
-
-/**
- * @fileoverview Tests for variable model.
- * @author marisaleung@google.com (Marisa Leung)
- */
-'use strict';
-
-var variable;
-var workspace;
-
-function variableModelTest_setUp() {
- workspace = new Blockly.Workspace();
-}
-
-function variableModelTest_tearDown() {
- workspace.dispose();
- variable = null;
-}
-
-/**
- * These tests check the constructor of the variable model.
- */
-function testInit_Trivial() {
- variableModelTest_setUp();
- variable = new Blockly.VariableModel(workspace, 'test', 'test_type',
- 'test_id');
- assertEquals('test', variable.name);
- assertEquals('test_type', variable.type);
- assertEquals('test_id', variable.id_);
- variableModelTest_tearDown();
-}
-
-function testInit_NullType() {
- variableModelTest_setUp();
- variable = new Blockly.VariableModel(workspace, 'test', null, 'test_id');
- assertEquals('', variable.type);
- variableModelTest_tearDown();
-}
-
-function testInit_UndefinedType() {
- variableModelTest_setUp();
- variable = new Blockly.VariableModel(workspace, 'test', undefined, 'test_id');
- assertEquals('', variable.type);
- variableModelTest_tearDown();
-}
-
-function testInit_NullId() {
- variableModelTest_setUp();
- variable = new Blockly.VariableModel(workspace, 'test', 'test_type', null);
- assertEquals('test', variable.name);
- assertEquals('test_type', variable.type);
- assertNotNull(variable.id_);
- variableModelTest_tearDown();
-}
-
-function testInit_UndefinedId() {
- variableModelTest_setUp();
- variable = new Blockly.VariableModel(workspace, 'test', 'test_type', undefined);
- assertEquals('test', variable.name);
- assertEquals('test_type', variable.type);
- assertNotNull(variable.id_);
- variableModelTest_tearDown();
-}
-
-function testInit_OnlyNameProvided() {
- variableModelTest_setUp();
- variable = new Blockly.VariableModel(workspace, 'test');
- assertEquals('test', variable.name);
- assertEquals('', variable.type);
- assertNotNull(variable.id_);
- variableModelTest_tearDown();
-}
diff --git a/tests/mocha/index.html b/tests/mocha/index.html
index 70d7ab502..e0bede811 100644
--- a/tests/mocha/index.html
+++ b/tests/mocha/index.html
@@ -60,6 +60,7 @@
+
diff --git a/tests/mocha/variable_model_test.js b/tests/mocha/variable_model_test.js
new file mode 100644
index 000000000..fb47818b9
--- /dev/null
+++ b/tests/mocha/variable_model_test.js
@@ -0,0 +1,58 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+suite('Variable Model', function() {
+ setup(function() {
+ this.workspace = new Blockly.Workspace();
+ });
+
+ teardown(function() {
+ this.workspace.dispose();
+ });
+
+ test('Trivial', function() {
+ var variable = new Blockly.VariableModel(
+ this.workspace, 'test', 'test_type', 'test_id');
+ chai.assert.equal(variable.name, 'test');
+ chai.assert.equal(variable.type, 'test_type');
+ chai.assert.equal(variable.id_, 'test_id');
+ });
+
+ test('Null type', function() {
+ var variable = new Blockly.VariableModel(
+ this.workspace, 'test', null, 'test_id');
+ chai.assert.equal(variable.type, '');
+ });
+
+ test('Undefined type', function() {
+ var variable = new Blockly.VariableModel(
+ this.workspace, 'test', undefined, 'test_id');
+ chai.assert.equal(variable.type, '');
+ });
+
+ test('Null id', function() {
+ var variable = new Blockly.VariableModel(
+ this.workspace, 'test', 'test_type', null);
+ chai.assert.equal(variable.name, 'test');
+ chai.assert.equal(variable.type, 'test_type');
+ chai.assert.exists(variable.id_);
+ });
+
+ test('Undefined id', function() {
+ var variable = new Blockly.VariableModel(
+ this.workspace, 'test', 'test_type', undefined);
+ chai.assert.equal(variable.name, 'test');
+ chai.assert.equal(variable.type, 'test_type');
+ chai.assert.exists(variable.id_);
+ });
+
+ test('Only name provided', function() {
+ var variable = new Blockly.VariableModel(this.workspace, 'test');
+ chai.assert.equal(variable.name, 'test');
+ chai.assert.equal(variable.type, '');
+ chai.assert.exists(variable.id_);
+ });
+});