If the quest is still in your quest log, it is
not completed. The API is correct.
If you want to know whether a quest in your quest log is ready to turn in (all of its objectives are completed) use the API function
GetQuestLogTitle instead:
Code:
local title, level, suggestedGroup, isHeader, isCollapsed, isComplete,
frequency, questID, startEvent, displayQuestID, isOnMap,
hasLocalPOI, isTask, isStory = GetQuestLogTitle(index)