Jack didn't tell me that he __ my chocolate.
- had eaten
- has eaten
I have a hard time figuring out which one to choose and why.
As jwpat7 pointed out, it depends on circumstances. Here is how you might use each tense, with examples for each tense:
In this example, Fred is really informing Jim that Jack eats Jim's chocolate, even though Fred is asking a question. We might call the questioner (Fred) a snitch, an informer, a tattletale, a talebearer, a rat--take your pick. Jim would then say,
In other words, Jim is saying he was not aware of Jack's habit of eating his (Jim's) chocolate.
In this example, Fred is likely (but not definitely) seeking information about something that happened in the past. He is asking for the purpose of asking, not telling, as with example 1. Jim would then say matter-of-factly,
In this example, Fred is probably, as in example 2, asking Jim if he knew that Jack ate his chocolate. In other words, perhaps Jack told Fred, who saw Jack eat the chocolate when Jim was not with them,
The next time Fred sees Jim, he says
Jim then says,
In this example, Fred, as in example 3, is asking Jim if he was aware of something Jack did. Perhaps Jim, in the presence of both Jack and Fred told Jack he was free to eat all his (Jack's) chocolate at his leisure, just before Jim handed the chocolate over to Jack. Later, when just Fred and Jim are together, Fred asks,
to which Jim might respond,
In conclusion, in each of the above examples, the tense of eat is correct, each in its own way.