add TypeScript functional test