How do I get SQL Server agent to show up in SSMS for a non-sysadmin user?
There are several points to consider.


Make sure that person connecting to SQL Server 2012 is using SSMS 2012, I have seen compatibility issues when some features are not showing up when connecting with wrong version.
Remove all roles from the user and grant them again, go over these steps to make sure that you have done it correctly first time.


Script for creating account and assigning role:

USE [master] 
CREATE LOGIN SQlSATest WITH PASSWORD = 'test', CHECK_EXPIRATION=OFF, CHECK_POLICY= OFF; 
USE [msdb]
CREATE USER [SQLSATest] FROM LOGIN SQLSATest; 
EXECUTE sp_addrolemember @rolename = 'SQLAgentOperatorRole', @membername = 'SQLSATest'