// Copyright 2014 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import 'dart:io'; // ignore: dart_io_import import 'package:path/path.dart' as path; // ignore: package_path_import import 'package:flutter_tools/src/convert.dart'; import '../src/common.dart'; /// Checks that all active template files are defined in the template_manifest.json void main() { test('Check template manifest is up to date', () { final Map manifest = json.decode( File('templates/template_manifest.json').readAsStringSync(), ) as Map; final Set declaredFileList = Set.from( (manifest['files'] as List).cast().map(path.toUri)); final Set activeTemplateList = Directory('templates') .listSync(recursive: true) .whereType() .where((File file) => path.basename(file.path) != 'template_manifest.json' && path.basename(file.path) != '.DS_Store') .map((File file) => file.uri) .toSet(); final Set difference = activeTemplateList.difference(declaredFileList); expect(difference, isEmpty, reason: 'manifest and template directory should be in-sync'); }); }