Some problems:
When working with angular-directives, you usually do not need to use syntax {{...}}, just use real values. Therefore, instead of:
data-ng-click="sw='{{test.name}}'"
using:
data-ng-click="sw = test.name"
(see next paragraph why this is not enough)
ng-repeatuses its scope with the transition, so the above value will be swin the wrong scope, use:
data-ng-click="$parent.sw = test.name"
you cannot build ng-switch-whenwith ng-repeat, try to try ng-show/hideinstead:
<div ng-repeat="test in tests" ng-show="sw == test.name">
demo: http://jsbin.com/uxobot/1/
But overall, I don't see the need ng-switch/ng-repeatfor a second div. The following has the same effect and probably a lot more semantic:
<div ng-controller="MyCtrl">
<div class="click">
<div ng-repeat="test in tests" data-ng-click="$parent.active = test">
{{test.name}}
</div>
</div>
<div class="switch">
{{active.text}}
</div>
</div>
demo: http://jsbin.com/elufow/1/