VBO update only takes effect if object moves outside of screen

I am trying to work with a mesh that has vertices being changed every frame. To start I figured I would see if I could do it with a single point. When I check the array each frame it outputs the correct new position but the point continues to be drawn in its starting location until its position reaches outside the screen. At this point it stops showing up, but never moves before that point.
Setup of the window:

glfwInit();
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
GLFWwindow* window = glfwCreateWindow(800, 600, "Simulation", nullptr, nullptr);

Initial construction of the VBO and VAO:

float myPoint[] = { 0.0f, 0.2f, 0.0f };
GLuint VBO_test, VAO_test;
glGenVertexArrays(1, &VAO_test);
glGenBuffers(1, &VBO_test);
glBindBuffer(GL_ARRAY_BUFFER, VBO_test);
glBufferData(GL_ARRAY_BUFFER, sizeof(float) * 3, myPoint, GL_STREAM_DRAW);
glBindVertexArray(VAO_test);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, 0);
glEnableVertexAttribArray(0);

Every frame I do the following:

myPoint[2] += (timeStep/1000) * 0.5;
std::cout << myPoint[2] << std::endl;
glBindBuffer(GL_ARRAY_BUFFER, VBO_test);
glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(myPoint), myPoint);
glBindVertexArray(VAO_test);
glDrawArrays(GL_POINTS, 0, 1);

I have tried using glBufferData() as well but it has the same effect.

EDIT: I was so focused on the opengl calls I didn’t realize I was in fact accessing the z value in the array.